【问题标题】:python requests is slowpython请求很慢
【发布时间】:2013-03-24 17:24:31
【问题描述】:

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

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”的实际 URL,这需要一秒钟,所以看起来是请求的问题。

【问题讨论】:

    标签: python download urllib2 python-requests urllib


    【解决方案1】:

    并非所有主机都支持head 请求。你可以改用这个:

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

    这实际上只下载标头,而不是响应内容。此外,如果您的想法是事后获取文件,您不必再提出请求。

    更多信息请参见here

    【讨论】:

    • 嘿,谢谢 doukremt...确实,即使在某些情况下该项目在那里,它也会显示 404...谢谢!
    【解决方案2】:

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

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

    从我机器上的 6.9 秒到 0.4 秒

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-28
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      相关资源
      最近更新 更多