http重定向分为两种:301 ,所请求的URL已经被移除,响应头的Location首部包含了所访问资源当前所用的URL
302 ,与301形式相同,区别在于,301用于资源永久移除的情况,而302用于临时移除的情况
在编写爬虫时,要正确处理重定向。我们在百度搜索数据时,百度给出的资源链接就是需要做302重定向的连接,比如下面的连接
http://www.baidu.com/link?url=_BxBIPfJaiJOqbhZZ0jQ4sn9xaV-mZrRaGBlEBnOpZc9v0dfJr1mdkH-890vwCJsEqE4zc4ygLl5fP_JxW3N1_
这是通过关键词 python 教程 搜索到的一个连接地址,将这个地址输入到浏览器中,最终显示的页面的地址是
https://www.runoob.com/python/python-tutorial.html
这个过程中,就发生了302重定向,浏览器会自动处理重定向,因此,作为使用者,我们并不了解中间的过程,但我们可以通过代码来探索其中的奥秘
import requests
url = 'http://www.baidu.com/link?url=_BxBIPfJaiJOqbhZZ0jQ4sn9xaV-mZrRaGBlEBnOpZc9v0dfJr1mdkH-890vwCJsEqE4zc4ygLl5fP_JxW3N1_'
res = requests.get(url, allow_redirects=False)
print(res.status_code)
print(res.headers)
在发送get请求时