在Python抓取数据时发生以下错误:
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
requests发生了太多的重定向,已超过了30个。
若仅仅利用在requests.get方法中添加参数allow_redirects=False
,可以禁止重定向,不会产生问题了,但这样做也导致,无法获取重定向的数据。
可以利用以下方法:
1、先开启requests请求的回话:
s = requests.session()
2、设置请求头部的用户代理:
s.headers[‘User-Agent’] = ‘用户代理编码’ [编码可将请求url复制到浏览器,按f12打开开发者工具的NetWork查找请求信息]
3、请求数据
data = s.get(url)
#html = requests.get(url, timeout=10,).content.decode('utf-8')
s=requests.session()
s.headers['User-Agent']='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'
html=s.get(url).content.decode('utf-8')