一,问题
做爬虫时会遇到强制重定向的链接,此时可以手动获取重定向后的链接
如下图情况
第二个链接是目标要抓取的,但它是第一个链接重定向过去的,第一个链接接口状态也是302
二,解决方法
请求第一个链接,设置 allow_redirects = False
从响应头中提取 Location 参数,即为重定向后的链接
res = requests.get(url = url, headers = headers, data = data, allow_redirects = False)
if response.status_code == 302:new_url = response.headers['Location']new_response = requests.get(new_url, proxies=proxies)print(new_response.text)
在上面的代码中,我们首先发送一个不允许重定向的请求,如果返回的状态码是302,表示发生了重定向,我们可以通过response.headers[‘Location’]来获取重定向后的新URL ,然后发送新的请求来获取数据。
总结在Python爬虫开发中,处理重定向URL问题是非常的。我们可以通过查看代码、历史重定向和响应的头部信息来了解重定向的重要情况,通过设置allow_redirects参数来控制是否允许重定向,以及通过自定义处理重定向的逻辑来解决重定向问题。希望本文对你有所帮助,谢谢阅读!