Python urllib对Google网站的请求速度很慢

时间:2015-01-28 06:21:48

标签: python http python-3.x urllib

我试图在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

有谁知道可能导致谷歌响应缓慢的原因?

1 个答案:

答案 0 :(得分:2)

首先,您可以使用pingtraceroute google.com和其他网站来比较时间延迟,以查看是否存在DNS问题。

其次,您可以使用wireshark来嗅探每个数据包,看看通信是否有问题。

我认为可能是DNS问题,但我无法确定。