urllib2.URLError:<urlopen错误[Errno 11004] getaddrinfo failed>

qui*_*lby 15 python urllib2

如果我跑:

urllib2.urlopen('http://google.com')
Run Code Online (Sandbox Code Playgroud)

即使我使用其他网址,我也会遇到同样的错误.

我很确定我的计算机或路由器上没有运行防火墙,而且互联网(来自浏览器)运行正常.

Jim*_*imB 5

该站点的 DNS 记录使得 Python 以一种特殊的方式使 DNS 查找失败:它找到了条目,但关联的 IP 地址为零。(使用 nslookup 进行验证。)因此,11004, WSANO_DATA

以“www”为网站前缀。并再次尝试请求。(使用 nslookup 来验证它的结果是否也不同。)

这与Python 请求模块的失败方式基本相同:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='...', port=80): Max retries exceeded with url: / (Caused by: [Errno 11004] getaddrinfo failed)


小智 5

在我的情况下,问题是当我没有代理时,某些安装在我的机器上定义了一个环境变量http_proxy.

删除http_proxy环境变量修复了问题.


xeo*_*eor 1

您可能需要使用代理。检查您的正常浏览器设置以找出哪些设置。看一下从公司防火墙后面使用 urllib2 打开网站 - 11004 getaddrinfo因类似问题而失败,并提供解决方案。