2

我正在为我的代码使用 urllib2 库,我使用了很多 (urlopen) 编辑:loadurl

我的网络有问题,当我浏览网站时,有时我的浏览器会卡在“连接”到某个网站上,有时我的浏览器会返回超时

我的问题是,如果我在我的代码上使用 urllib2,当尝试连接到某个网站的时间过长时,它可能会超时,或者代码会卡在该行上。

我知道 urllib2 可以处理超时而不在代码上指定它,但它可以适用于这种情况?

谢谢你的时间

编辑 :

def checker(self)
 try:
   html = self.loadurl("MY URL HERE")
   if self.ip_ != html:
(...)
 except Exeption, error:
   html = "bad"
4

1 回答 1

1

根据我的小研究,该urllib2.urlopen()功能是在python 2.6中添加的

因此,应该通过向urllib2.urlopen函数发送自定义超时来解决超时问题。代码应该是这样的;

response = urllib2.urlopen( "---insert url here---", None, your-timeout-value)

your-timeout-value参数是一个可选参数,它以秒为单位定义超时。

编辑:根据您的评论,我知道您不需要等待太久的代码,那么您应该拥有以下代码以免卡住;

import socket
import urllib2

socket.setdefaulttimeout(10)

10可以根据与连接速度和网站加载时间相关的数学公式进行更改。

于 2013-01-03T23:08:53.487 回答