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