请求(或httplib2.request)花费的时间太长,无法返回状态代码

时间:2019-03-01 07:58:26

标签: python

我正在尝试检查某些文件链接是否打开。我已经尝试过请求库:

import requests
url = 'http://releases.libreelec.tv/LibreELEC-RPi2.arm-9.0.1.img.gz'
print(requests.get(url).status_code)

还有httplib2:

import httplib2
url = 'http://releases.libreelec.tv/LibreELEC-RPi2.arm-9.0.1.img.gz'
http = httplib2.Http()
resp = http.request(url)[0]
print(resp.status)

由于链接是好的..返回“ 200”状态代码花费的时间太长(我从来没有等它完成)。对于禁止的(403)代码,它可以正常工作。关键是我需要它快。

2 个答案:

答案 0 :(得分:1)

如果仅需要获取响应代码,则可以使用requests.head

import requests
try:
    r = requests.head('http://releases.libreelec.tv/LibreELEC-RPi2.arm-9.0.1.img.gz')
    print(r.status_code)
except:
    print('problem')

如本topic所示,它应该更快,因为它只会扬起头,但是请检查它是否足够快以达到您的目的。

答案 1 :(得分:0)

快速:

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

ref:python requests is slow