我有一个运行良好几个月的 python web-scraper 脚本。它使用 urllib2 访问远程 URL、提交数据、捕获结果等。
昨天突然 urlli2 开始在大多数(但不是全部)访问远程 URL 的尝试中抛出错误。错误是:
URLError: urlopen error [Errno -2] Name or service not known
什么会导致 90% 的远程请求突然失败?究竟是什么[Errno -2]
意思??我搜索了urllib2
文档,但没有找到真正的解释[Errno -2]
,也在这里搜索了任何答案但没有成功。
请帮忙?
附加信息:
- 我也可以从我自己的浏览器访问该 URL,所以它不是一个错误的 URL。
- 我可以从我的服务器 ping 远程域,完全没有失败。
- 正如我所提到的,它不会 100% 失败,而是大约 95%。
回溯堆栈如下所示:
File "/var/www/html/pylaw/http.py", line 8, in urlopen
X = urllib2.urlopen(url, data=d).read()
File "/usr/local/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/local/lib/python2.7/urllib2.py", line 400, in open
response = self._open(req, data)
File "/usr/local/lib/python2.7/urllib2.py", line 418, in _open
'_open', req)
File "/usr/local/lib/python2.7/urllib2.py", line 378, in _call_chain
result = func(*args)
File "/usr/local/lib/python2.7/urllib2.py", line 1215, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/usr/local/lib/python2.7/urllib2.py", line 1177, in do_open
raise URLError(err)
URLError: urlopen error [Errno -2] Name or service not known