重定向
- 在请求url的时候,有时候打印出来的请求的url和你一开始想要请求的url不一样,想要搞清楚这个问题,就要搞清楚requests的重定向问题
一,默认情况
默认情况下,requests发送的请求除了方式为HEAD之外,其余的请求例如GET、POST等都是能自动进行重定向的
二,那么如何取消重定向呢?
- 在发送请求的时候,可以通过如下的设置,取消requests模块的自动重定向功能
requests.get(url, allow_redirects=False)
四,在默认情况下获取历史请求(即获取所有重定向的记录)
- 通过requests对象.history就能够提取到请求的历史记录
例如
import requests
headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
}
r = requests.get("http://www.360buy.com", headers=headers)
print("历史请求过程信息:")
print(r.history)
for one_info in r.history:
print(one_info.status_code, one_info.url, one_info.headers)
print("\n\n最后一次的请求信息:")
print(r.status_code, r.url, r.headers)
效果如下: