我正在将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)