蟒蛇的要求是缓慢的(python requests is slow)

2019-08-19 04:57发布

我正在开发一个下载管理器。 使用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与作为实际的URL“ http://pyscripter.googlecode.com/files/PyScripter-v2.5.3-Setup.exe ”,这需要一秒钟,因此似乎与请求的问题。

Answer 1:

并非所有的主机支持head的请求。 您可以使用它代替:

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

这实际上只下载了头,不响应的内容。 而且,如果这个想法是让该文件后,您不必再进行一次请求。

见这里获取更多相关信息。



Answer 2:

不要使用get实际检索文件,使用:

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

从6.9secs去我的机器上0.4secs



文章来源: python requests is slow