【那些年跳的坑】Requests 库 HTTP 状态码 / 重定
2017-06-05 本文已影响58人
CC先生之简书
问题:在使用Requests库来进行模拟网络请求时,从抓包上来看,若请求返回的HTTP状态码为302,在代码上运行的时候会发现总是返回200的状态码。
![](https://img.haomeiwen.com/i618241/83304710a42a1baf.png)
推理了好久发现,requests 默认自动地处理了 302 跳转。在经过跳转的请求中,返回的 URL 和状态码都是跳转之后的信息;唯独在 history 中,用 Python 列表记录了跳转情况。
大多数情况下,自动处理是挺好的。不过,有时候我们也想单步追踪页面跳转情况。此时,可以给请求加上 allow_redirects = False 参数。
![](https://img.haomeiwen.com/i618241/4aeccff408afcb39.png)
不允许 requests 自动处理跳转后,返回的 URL 和状态码都符合预期了。