python请求很慢

时间:2013-04-03 06:51:51

标签: python download urllib2 python-requests urllib

我正在开发一个下载管理器。使用python中的请求模块来检查有效链接(并希望破坏链接)。 我检查以下链接的代码:

    url='http://pyscripter.googlecode.com/files/PyScripter-v2.5.3-Setup.exe'
    r = requests.get(url,allow_redirects=False) #this line takes 40 seconds
    if r.status_code==200:
        print "link valid"
    else:
        print "link invalid"

现在,问题是执行此检查需要大约40秒,这是巨大的。 我的问题是如何使用urllib2或其他东西来加快速度?

注意:如果我将url替换为实际网址“http://pyscripter.googlecode.com/files/PyScripter-v2.5.3-Setup.exe”,则需要一秒钟,因此它似乎是请求的问题。

2 个答案:

答案 0 :(得分:11)

并非所有主机都支持head个请求。您可以改为使用它:

r = requests.get(url, stream=True)

这实际上只下载标题,而不是响应内容。此外,如果想要在以后获取文件,则不必另外提出请求。

有关更多信息,请参阅here

答案 1 :(得分:9)

请勿使用实际检索文件的get,请使用:

r = requests.head(url,allow_redirects=False)

从我的机器上的6.9secs到0.4secs