hac*_*r15 1 urllib2 urlopen eventlet python-2.7
Python新手来了。
我使用 eventlet 和 urllib2 发出大量异步 http 请求。在我的文件顶部有
import eventlet
import urllib
from eventlet.green import urllib2
Run Code Online (Sandbox Code Playgroud)
然后我发出了很多异步 http 请求,并通过这一行成功:
conn = urllib2.urlopen(signed_url, None)
Run Code Online (Sandbox Code Playgroud)
突然间,我收到这个错误:
URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>
Run Code Online (Sandbox Code Playgroud)
这个错误发生在同一个 urllib2.urlopen 行上,这很奇怪,因为它之前成功过很多次。另外,当我打印signed_url 然后将其粘贴到浏览器时,我会得到正确的响应,因此该url 的格式正确。
我已经浏览过帖子,但找不到合适的调试策略。从概念上讲,什么可能导致此错误?您建议我如何修复它?
我正在使用Python 2.7.6。
谢谢。
“节点名称未知”错误表示 DNS 解析失败。最可能的原因是上游 DNS 服务器速率限制。如果您认真进行网络爬行,我可以推荐两种方法:
http://1.2.3.4/path
将 URL和标头中解析的 IP 地址传递Host: domain
给 urlopen。这将允许分别限制 DNS 请求和实际 HTTP 请求的并发性。如果您主要为每个唯一主机只获取一个请求,这将无济于事。为自己找到许多递归 DNS 服务器来分配工作、收集其响应时间统计数据、更频繁地使用更快的服务器。 归档时间: |
|
查看次数: |
6082 次 |
最近记录: |