我正在为我的代码使用 urllib2 库,我正在使用很多 (urlopen) 编辑:loadurl
我的网络有问题,当我浏览网站时,有时我的浏览器会卡在“正在连接”到某个网站,有时我的浏览器会返回超时
我的问题是,如果我在我的代码中使用 urllib2,它可能会在尝试连接到某个网站的时间过长时超时,或者代码会卡在那条线上。
我知道 urllib2 可以在不在代码中指定的情况下处理超时,但它可以适用于这种情况吗?
谢谢你的时间
编辑:
def checker(self)
try:
html = self.loadurl("MY URL HERE")
if self.ip_ != html:
(...)
except Exeption, error:
html = "bad"
最佳答案
根据我的小研究,python 2.6 中添加了 urllib2.urlopen()
函数
因此,应该通过将自定义超时发送到 urllib2.urlopen
函数来解决超时问题。代码应该是这样的;
response = urllib2.urlopen( "---insert url here---", None, your-timeout-value)
your-timeout-value
参数是一个可选参数,它以秒为单位定义超时。
编辑:根据您的评论,我知道您不需要等待太久的代码,那么您应该使用以下代码以免卡住;
import socket
import urllib2
socket.setdefaulttimeout(10)
10
可以根据与连接速度和网站加载时间相关的数学公式进行更改。
关于python - urllib2 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148341/