首先需要了解的是,当使用requests库时,请求可能会被重定向到其他页面或链接。默认情况下,requests库将遵循最多30次重定向。当此次数超过了该限制,会出现”requests.exceptions.TooManyRedirects: Exceeded {max_redirects} redirects.”的报错信息。
造成这种报错的原因:
1.目标网站进行了反爬虫设置,使用了重定向来应对爬虫爬取数据的行为。
2.目标网站进行了页面跳转或者链接跳转的设置。
解决方法:
1.使用max_redirects参数设置最大的重定向次数。
import requests
s = requests.Session()
s.max_redirects = 50 # 设置最大重定向次数
response = s.get('https://www.example.com/')
2.在请求语句中使用allow_redirects参数设为False禁止重定向。
import requests
response = requests.get('https://www.example.com/', allow_redirects=False)
3.分析目标网站的反爬虫策略,了解其重定向逻辑,并制定相应爬取策略。
如果以上方法都无法解决问题,可能需要重写代码,使用其他方法爬取目标网站的数据。
总结:
requests.exceptions.TooManyRedirects: Exceeded {max_redirects} redirects. 的报错信息是由于requests库默认遵循最多30次重定向而导致的。解决方法包括设置最大重定向次数、禁止重定向以及制定相应爬取策略等。当以上方法都无法解决问题时,可能需要重写代码,使用其他方法爬取目标网站的数据。