从Heroku上的URL检索HTML

2024-04-20 12:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Heroku来主持我的电报机器人。 bot的目的是从网页中检索html并将其转换为pdf。你知道吗

在成功地将其托管在网上之后,我尝试向bot发送一个URL,但在发送get请求时它会冻结/停止。你知道吗

代码:

logger.info('retrieving HTML = {}'.format(url))
page_html = requests.get(url)

logger.info('retrieved HTML')
logger.info('started HTML parsing')
soup = BeautifulSoup(page_html.text, 'html.parser')

在Heroku日志中,我只看到retrieving HTML = <URL>,而应用程序没有显示任何活动迹象。你知道吗

我尝试使用heroku控制台(可从heroku网页访问)连接到dyno(heroku上的应用程序本身),并输入以下代码:

import requests
# url of a recepie
url = 'https://pikabu.ru/story/pirog_quotlen__matushkaquot_5332461'
html = requests.get(url)

在heroku控制台中执行这段代码也需要很长时间,而且没有完成(没有错误,没有消息,我可以用crtl+c停止进程,执行永远不会完成),我不确定可能是什么问题。你知道吗

事先谢谢,任何提示或帮助都将不胜感激。你知道吗


Tags: 代码infourl网页getherokuhtmlbot
1条回答
网友
1楼 · 发布于 2024-04-20 12:17:17

如果你没有看到日志中的信息,或者没有意识到你想要抓取的页面有多大,我猜你正在点击Heroku的30秒超时。你知道吗

the Dev Center article on timeouts

The request must then be processed in the dyno by your application, and a response delivered back to the router, within 30 seconds to avoid the timeout.

我会在运行脚本时检查您的日志(heroku logs -t -a yourAppName),并查找h12,这是超时错误代码。或者,如果您使用的是hobby或更高版本的dynos,您可以查看仪表板上的application metrics。你知道吗

相关问题 更多 >