python urlopen错误[Errno 10060]

时间:2016-07-23 19:18:31

标签: python urlopen

我正在尝试运行以下代码,

for parname in parss:
    data = {'action': 'listp', 'parish': parname}
    data = urllib.urlencode(data)
    req = urllib2.Request('http://www.irishancestors.ie/search/townlands/ded_index.php', data)
    response = urllib2.urlopen(req)

但是我在代码执行后几分钟就得到了错误

urllib2.URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>

这是我的代理设置。

enter image description here

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

正如评论中所讨论的,在很短的时间内执行大量请求可能会导致服务器(尤其是Web服务器)阻止您的连接尝试。

这是针对网络自动攻击的常见对策。 根据服务器的不同,请求之间等待很短的时间可以解决您的问题。

您还可以使用更动态的方法。首先,执行尽可能多的请求,中间不要等待。如果请求的时间比平时长得多,则很可能是超时,您必须等待。此时,您取消请求,等待并重试。如果后续尝试也导致超时,则等待时间加倍。使用此过程称为自适应退避,您应该(希望)能够以最小的开销访问所需的数据。