我在 Ubuntu 10.10 上遇到了 urllib2.urlopen() 的奇怪行为。对 url 的第一个请求速度很快,但第二个请求需要很长时间才能连接。我认为在 5 到 10 秒之间。在 Windows 上,这正常吗?
有谁知道什么可能导致这个问题?
谢谢, 小野
我在 Ubuntu 10.10 上遇到了 urllib2.urlopen() 的奇怪行为。对 url 的第一个请求速度很快,但第二个请求需要很长时间才能连接。我认为在 5 到 10 秒之间。在 Windows 上,这正常吗?
有谁知道什么可能导致这个问题?
谢谢, 小野
5 秒听起来很像 DNS 解析超时。
预感,它可能正在循环通过你的 DNS 服务器,/etc/resolv.conf
如果其中一个坏了,linux 上的默认超时是 5 秒,之后它将尝试下一个,当它全部尝试时循环回到顶部.
如果您在 resolv.conf 中列出了多个 DNS 服务器,请尝试删除除一个之外的所有 DNS 服务器。如果这解决了它;然后在那之后看看为什么你被分配了不正确的解析服务器。
您可以启用 urllib2 的调试也许它可以帮助您发现问题
import urllib2
opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
opener.open('http://www.google.com')