【问题标题】:Python urllib2 timeout when using Tor as proxy?使用 Tor 作为代理时 Python urllib2 超时?
【发布时间】:2009-06-15 19:41:31
【问题描述】:

我使用 Python 的 urllib2 和 Tor 作为代理来访问网站。当我 打开网站的主页,它工作正常,但是当我尝试查看登录页面时 (实际上没有登录,只是查看它)我收到以下错误...

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

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

import socket
socket.setdefaulttimeout(None).

我仍然遇到同样的超时错误。

  1. 这是否意味着网站在服务器端超时? (我知道的不多 关于 http 进程,如果这是一个愚蠢的问题,非常抱歉)
  2. 有什么方法可以纠正它,以便 Python 能够查看该页面?

谢谢, 抢

【问题讨论】:

    标签: python timeout urllib2 tor


    【解决方案1】:

    根据Python Socket Documentation,默认设置为无超时,因此指定“无”值是多余的。

    连接中断的可能原因有很多。一种可能是您的用户代理是“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')
    

    您可能还想尝试覆盖代理设置,然后再尝试使用以下内容打开网址:

    proxy = urllib2.ProxyHandler({"http":"http://127.0.0.1:8118"})  
    opener = urllib2.build_opener(proxy)
    urllib2.install_opener(opener)
    

    【讨论】:

    • 感谢您的回复。我已经构建并安装了代理处理程序,但我没有想过尝试更改用户代理。我试过了,但它没有改变任何东西。我也不认为它被明确阻止,因为我能够访问主页。是否有可能该站点设置了一个很小的默认超时,并且代理所花费的额外时间导致超时?
    • 我认为您的建议可能是可能的,但不太可能。要考虑的另一个选项是该站点正在执行反向查找,检测到您来自已知代理,然后断开您的连接。我遇到了这个问题,或者更确切地说,这是我在 Yahoo/Yahoo Mail 遇到类似问题时的最佳猜测。您是否尝试过其他域没有问题?
    • 我尝试了其他域没有问题,包括其他 https 域,但我可以访问网站上的很多页面,只是不能登录。这与执行反向查找的站点一致吗?谢谢,罗伯
    • 好的,所以我进一步测试了它,我可以使用代理访问多个不同站点上的 https,而不是这个特定站点。此外,我可以访问此特定站点上的任何 http 页面,但每当我尝试访问任何 https 页面时,都会收到超时错误。此外,如果我尝试访问我尝试访问的网站上不存在的 https 页面(例如domain-i-am-testing.com/sdljkfsjlkdflksdadj,我也会收到超时错误)
    • 最后,当我通过一个流行的在线代理打开登录页面时,我能够访问它,这让我觉得他们可能没有进行反向查找。
    【解决方案2】:

    我对 Tor 的了解不够,无法确定,但超时可能不会发生在服务器端,而是发生在您和服务器之间的某个 Tor 节点上。在这种情况下,您只能重试连接。

    【讨论】:

      【解决方案3】:

      urllib2.urlopen(url[, data][, timeout])

      可选的 timeout 参数指定连接尝试等阻塞操作的超时时间(如果未指定,将使用全局默认超时设置)。这实际上只适用于 HTTP、HTTPS、FTP 和 FTPS 连接。

      http://docs.python.org/library/urllib2.html

      【讨论】:

        猜你喜欢
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        • 2013-12-16
        相关资源
        最近更新 更多