urllib2连接超时错误

3

我正在尝试使用urllib2打开一个页面,但是一直收到连接超时错误。

我使用的代码行是:

f = urllib2.urlopen(url)

具体错误信息如下:

URLError: <urlopen error [Errno 110] Connection timed out>


你能在浏览器中加载这个URL吗? - SilentGhost
是的,该URL在浏览器中可以加载。我认为问题可能与我的连接设置有关。Python urllib2如何连接到互联网? - zubinmehta
1
我之前使用代理,现在已经不用了。我所做的唯一更改是删除了http_proxy和https_proxy。 - zubinmehta
2个回答

4

urllib2 会遵守 robots.txt 规则。许多网站都会阻止默认的 User-Agent

尝试添加一个新的 User-Agent,方法是创建 Request 对象并将其用作 urlopen 的参数:

import urllib2

request = urllib2.Request('http://www.example.com/')
request.add_header('User-agent', 'Mozilla/5.0 (Linux i686)')

response = urllib2.urlopen(request)

有几个详细的步骤可供参考,例如http://www.doughellmann.com/PyMOTW/urllib2/


4
似乎不太可能遵守robots.txt文件,这需要urllib2进行额外的网络请求来获取文件。但网站可能会阻止特定的用户代理,这是另一回事。 - John Montgomery

1
作为一般策略,打开Wireshark并观察由urllib2.urlopen(url)生成的流量。你可能能够看到错误的来源在哪里。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接