我正在使用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()方法遵循重定向?
我进行了很多搜索,但没有找到真正相关的内容。
答案 0 :(得分:2)
这就是您需要的!检查ref
>>> import requests
>>> r = requests.head('http://github.com/', allow_redirects=True)
>>> r.history
>>> [<Response [301]>]