Python urllib2.urlopen bug:超时错误导致我的Internet连接断断续续?

时间:2010-10-20 03:02:47

标签: python urllib2 urlopen

我不知道我做错了什么,但我百分百肯定这是python脚本打断了我的互联网连接。

我写了一个python脚本来抓取成千上万的文件头信息,主要是使用内容长度来获取每个文件的确切大小,使用HEAD请求。

示例代码:

class HeadRequest(urllib2.Request):
    def get_method(self):
        return "HEAD"

response = urllib2.urlopen(HeadRequest("http://www.google.com"))
print response.info()

事情是在运行几个小时之后,脚本开始抛出urlopen错误超时,并且我的Internet连接从那时开始关闭。关闭该脚本后,我的Internet连接将立即重新启动。一开始我觉得它可能是连接不稳定,但经过几次运行后,结果却是脚本错误。

我不知道为什么,这应该被视为一个bug,对吧?或者我的ISP禁止我做这些事情? (我已经将程序设置为每个请求等待10次)

顺便说一下,我正在使用VPN网络,它与此有关吗?

2 个答案:

答案 0 :(得分:0)

我猜你的ISP或VPN提供商正在限制你因为大量可疑流量,或者你的路由器或VPN隧道被半开连接堵塞了。消费者互联网真的不适合蜘蛛式活动。

答案 1 :(得分:0)

  

“脚本开始抛出urlopen错误超时”

我们甚至无法开始猜测。

您需要在计算机上收集数据并在问题中包含该数据。

获取另一台电脑。运行你的脚本。另一台计算机的互联网访问是否也被阻止?或者它仍然有用吗?

  • 如果两台计算机都被阻止,那么它不是您的软件,而是您的提供商。使用此信息更新您的问题,以及您是如何获得的。

  • 如果只停止运行脚本的计算机,那么它不是您的提供程序,而是您的操作系统资源已耗尽。这很难诊断,因为它可能是内存,套接字或文件描述符。通常是它的插座。

您需要为您的操作系统找到一些ifconfig / ipconfig诊断软件。您需要更新您的问题,以准确说明您正在使用的操作系统。您需要使用此诊断软件来查看有多少打开的插槽使您的系统混乱。