如果我运行:urllib2.URLError:<错误的urlopen [错误11004]的getaddrinfo失败>
urllib2.urlopen('http://google.com')
即使我用另一个URL,我得到了同样的错误。
我很确定在我的电脑或路由器上没有运行防火墙,并且互联网(从浏览器)正常工作。
如果我运行:urllib2.URLError:<错误的urlopen [错误11004]的getaddrinfo失败>
urllib2.urlopen('http://google.com')
即使我用另一个URL,我得到了同样的错误。
我很确定在我的电脑或路由器上没有运行防火墙,并且互联网(从浏览器)正常工作。
您可能需要使用代理。检查您的正常浏览器设置,找出哪些。看看opening websites using urllib2 from behind corporate firewall - 11004 getaddrinfo failed与解决方案类似的问题,
这可能不会帮助你,如果它是一个网络级别的问题,但你可以得到一些调试信息通过设置httplib上的debuglevel。试试这个:
import urllib, urllib2, httplib
url = 'http://www.mozillazine.org/atom.xml'
httplib.HTTPConnection.debuglevel = 1
print "urllib"
data = urllib.urlopen(url);
print "urllib2"
request = urllib2.Request(url)
opener = urllib2.build_opener()
feeddata = opener.open(request).read()
这是从这里直接复制,希望这是犹太:http://bytes.com/topic/python/answers/517894-getting-debug-urllib2
要解决的问题:
ping google.com
并观察它是否有效(或者你会说“无法找到主机”)让我们知道它是怎么回事。
该网站的DNS记录是这样的,Python以一种奇怪的方式使DNS查找失败:它找到条目但没有关联IP地址。 (用nslookup验证。)因此,11004, WSANO_DATA。
以'www。'为前缀的网站。并再次尝试请求。 (使用nslookup来验证它的结果是不同的,太。)
这基本上失败了Python Requests module以同样的方式:
requests.exceptions.ConnectionError:HTTPConnectionPool(主机= '...',端口= 80):最大重试次数超过与网址:/(致:[错误11004]的getaddrinfo失败)
的问题,在我的情况下,是一些安装在我的机器时,定义一个环境变量HTTP_PROXY一些点我没有代理。
删除http_proxy环境变量修复了这个问题。
我不在公司防火墙后面,在我的浏览器中没有定义代理。 – quilby 2011-02-16 22:38:22