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

发布于 2024-07-24 04:52:43 字数 458 浏览 8 评论 0原文

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

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

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

import socket
socket.setdefaulttimeout(None).

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

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

谢谢, 抢

I am using Python's urllib2 with Tor as a proxy to access a website. When I
open the site's main page it works fine but when I try to view the login page
(not actually log-in but just view it) I get the following error...

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

To counteract this I did the following:

import socket
socket.setdefaulttimeout(None).

I still get the same timeout error.

  1. Does this mean the website is timing out on the server side? (I don't know much
    about http processes so sorry if this is a dumb question)
  2. Is there any way I can correct it so that Python is able to view the page?

Thanks,
Rob

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嗼ふ静 2024-07-31 04:52:43

根据 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')

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

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

According to the Python Socket Documentation the default is no timeout so specifying a value of "None" is redundant.

There are a number of possible reasons that your connection is dropping. One could be that your user-agent is "Python-urllib" which may very well be blocked. To change your user agent:

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')

You may also want to try overriding the proxy settings before you try and open the url using something along the lines of:

proxy = urllib2.ProxyHandler({"http":"http://127.0.0.1:8118"})  
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
巷子口的你 2024-07-31 04:52:43

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

I don't know enough about Tor to be sure, but the timeout may not happen on the server side, but on one of the Tor nodes somewhere between you and the server. In that case there is nothing you can do other than to retry the connection.

累赘 2024-07-31 04:52:43

urllib2.urlopen(url[, 数据][, 超时])

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

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

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

The optional timeout parameter specifies a timeout in seconds for blocking operations like the connection attempt (if not specified, the global default timeout setting will be used). This actually only works for HTTP, HTTPS, FTP and FTPS connections.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文