使用Tor作为代理时Python urllib2超时?

我正在将Python的urllib2与Tor一起用作访问网站的代理.当我
打开网站的主页,效果很好,但是当我尝试查看登录页面时
(实际上不是登录,而只是查看它)我收到以下错误…

URLError: <urlopen error (10060, 'Operation timed out')>

为了解决这个问题,我做了以下工作:

import socket
socket.setdefaulttimeout(None).

我仍然收到相同的超时错误.

>这是否意味着网站正在服务器端超时? (我不太了解
关于http进程的信息,如果这是一个愚蠢的问题,请您谅解)
>有什么办法可以纠正它,以便Python能够查看页面?

谢谢,
  抢

解决方法:

根据Python Socket Documentation,默认值为无超时,因此将值“ None”指定为多余的.

有许多可能的原因导致您的连接断开.一种可能是您的用户代理是“ Python-urllib”,可能会被阻止.更改用户代理:

request = urllib2.Request('site.com/login')
request.add_header('User-Agent','Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.04 (jaunty) Firefox/3.5')

您可能还想尝试覆盖代理设置,然后再尝试使用以下方式打开URL:

proxy = urllib2.ProxyHandler({"http":"http://127.0.0.1:8118"})  
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
上一篇:python-限制下载的页面大小


下一篇:Python中爬虫框架或模块的区别!