如何使用python request.head方法遵循30倍重定向

时间:2019-07-08 22:11:21

标签: python http python-requests

我正在使用python请求库将请求发送到网站,并且我只对获取响应标头感兴趣。我遇到的问题是,如果我使用request.head()方法,并且响应是30x重定向,则request.head()方法将不会跟随重定向到最终网站。虽然使用requests.get()方法确实遵循重定向,但它比requests.head()慢得多。

这里是一个示例:

>>> r = requests.head('http://google.com')
>>> r.status_code
301

>>> r = requests.get('http://google.com')
>>> r.status_code
200

由于google.com将所有http请求重定向到https,如果我将请求发送到http://google.com,我将得到响应以重定向到https://google.com

所以我的问题是是否存在一种方法(不窥视响应头,而无需手动跟随“ Location”头),以使request.head()方法遵循重定向?

我进行了很多搜索,但没有找到真正相关的内容。

1 个答案:

答案 0 :(得分:2)

这就是您需要的!检查ref

>>> import requests
>>> r = requests.head('http://github.com/', allow_redirects=True)
>>> r.history
>>> [<Response [301]>]