2010-07-07 127 views
3

我想使用urllib2打开一个页面,但是我一直收到连接超时错误。
里面我是用该生产线是: f = urllib2.urlopen(url)urllib2连接超时错误

确切的错误是:

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

+0

可以加载网址在浏览器? – SilentGhost 2010-07-07 17:31:01

+0

是的,网址在浏览器中加载。我认为问题可能出在我的连接设置上。 python urllib2如何连接到互联网? – zubinmehta 2010-07-07 17:39:57

+0

你是否支持代理? – SilentGhost 2010-07-07 17:41:48

回答

4

urllib2尊重robots.txt。许多网站阻止默认User-Agent

尝试添加新User-Agent,用它们作为论据urlopen创建Request对象&:

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/

+3

它似乎不太可能尊重robots.txt。这需要urllib2执行一个额外的网络请求来获取文件。虽然网站可能会阻止某些用户代理,但这是另一回事。 – 2012-04-12 14:15:24

0

作为一般战略,开放的Wireshark并观看由urllib2.urlopen(url)产生的流量。您可能能够看到错误来自哪里。