我一直在尝试运行我的python脚本并使用urllib2从网站上抓取数据。但是,我编写的所有python脚本都会出现同样的错误。 我正在开发一个Windows和Linux双启动。相同的代码在Windows 7上正常工作,但在ubuntu 12.10上工作时出现以下错误。 代码非常基础:
import urllib2
response=urllib2.urlopen('http://www.google.com/')
html=response.read()
这是错误:
File "resp.py", line 2, in <module>
response=urllib2.urlopen('http://www.google.com/')
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 401, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 419, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1211, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1181, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno -2] Name or service not known>
有人可以建议如何解决这个问题吗?我不使用代理服务器,因此可能会被排除在外。
答案 0 :(得分:0)
请注意错误消息:“名称或服务未知”。
我认为这仅仅是因为您的计算机无法连接到www.google.com(您甚至无法解析www.google.com的IP地址)。尝试ping www.google.com
。
也许你被一些防火墙挡住了(例如GFW)
答案 1 :(得分:0)
发生异常:
在我的脚本中我也得到了与你提到的相同的错误,我能够通过更改dns服务器ip来解决我的问题。 可能是你的dns服务器ip更改,在linux dns服务器路径是/etc/resolve.conf