python - URL 请求语句后超时
问题描述
我目前有一些代码旨在尝试执行 URL 请求,如果抛出任何异常以确认它们并继续。
try:
x = requests.get(URL)
except requests.exceptions.Timeout:
print('timeout error, proceed to next URL')
except requests.exceptions.TooManyRedirects:
print('too many redirects, proceed to next URL')
except requests.exceptions.RequestException:
print('request exception, proceed to next URL')
但是,使用 try 语句,有时会请求一个 URL,并且请求会持续数小时,并且永远不会抛出 Timeout 异常。本质上它会进入 try 并执行 requests.get(URL) 并且它只是卡住了。不知道为什么会这样。
我怎样才能让它捕捉到超时错误,这样它就不会卡住,而是在指定的时间(比如 10 秒或其他时间)后继续前进?
编辑: URL 是链接到实际网站的有效 URL,并且循环设置正确,这不是问题。
解决方案
请求对象接受各种参数,其中之一是timeout
. 如果您不传递任何值,则默认值为 None,这意味着请求只会在连接关闭时终止。因此,请尝试在您的请求中指定自定义“超时”。我认为 10 秒应该不错。
推荐阅读
- javascript - 如何使用打字稿和样式组件提升非反应静态?
- php - Laravel (v5.2.45) 播种器和双引号
- javascript - 当用户在 textarea 中点击“输入”时,如何在 MySql 中添加新行?
- android - 麻省理工学院应用程序发明者休息在平板电脑上运行时返回错误
- macos - 如何将终端样式更改回默认值?
- javascript - 在javascript中计数和重置
- javascript - 使用纯javascript将鼠标悬停在视频上时如何播放视频
- ruby - 向 Middleman 添加自定义 Markdown
- c# - 用一个词多次拆分字符串?
- html - 在换行符中处理边距时,是否有更简单的“calc”替代方法?