我试图在Python 3中向http://google.com发出urllib请求(我在2.7中使用urllib2重写了它,同样的问题)。以下是我的一些代码:
import urllib.request
from urllib.request import urlopen
import http.cookiejar
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36')]
def makeRequest():
search = 'http://google.com'
print('About to search...')
response = opener.open(search).read()
print('Done')
makeRequest()
当我运行此代码时,它会在大约14秒内运行:
real 0m14.386s
user 0m0.087s
sys 0m0.027s
任何Google网站(Gmail,Google Play等)的情况都是如此。当我将搜索变量更改为其他站点(例如Stackoverflow或Twitter)时,它会在不到半秒的时间内运行:
real 0m0.277s
user 0m0.085s
sys 0m0.017s
有谁知道可能导致谷歌响应缓慢的原因?
答案 0 :(得分:2)
首先,您可以使用ping
或traceroute
google.com和其他网站来比较时间延迟,以查看是否存在DNS问题。
其次,您可以使用wireshark
来嗅探每个数据包,看看通信是否有问题。
我认为可能是DNS问题,但我无法确定。