问题:在使用Requests库来进行模拟网络请求时,从抓包上来看,若请求返回的HTTP状态码为302,在代码上运行的时候会发现总是返回200的状态码。
推理了好久发现,requests 默认自动地处理了 302 跳转。在经过跳转的请求中,返回的 URL 和状态码都是跳转之后的信息;唯独在 history 中,用 Python 列表记录了跳转情况。
大多数情况下,自动处理是挺好的。不过,有时候我们也想单步追踪页面跳转情况。此时,可以给请求加上 allow_redirects = False 参数。
不允许 requests 自动处理跳转后,返回的 URL 和状态码都符合预期了。