You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests_ip_rotator爬虫触发TooManyRedirects 30次重定向错误如何解决

TooManyRedirects错误解决方案

以下是可依次尝试的解决步骤:

  • 排查重定向根源
    先禁用自动重定向,查看返回的状态码、重定向目标地址和响应内容,确认是否为死循环、验证页跳转或域名校验错误:
import requests
from requests_ip_rotator import ApiGateway, EXTRA_REGIONS

if __name__ == "__main__":
    gateway = ApiGateway("https://spare.avspart.com", regions=EXTRA_REGIONS, access_key_id = 'my key', access_key_secret = 'my secret key')
    gateway.start(force=True)
    session = requests.Session()
    session.mount("https://spare.avspart.com", gateway)
    session.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'
    # 禁用自动重定向,查看首次请求结果
    response = session.get("https://spare.avspart.com/catalog/case/64848/4534337/677993/", allow_redirects=False)
    print("状态码:", response.status_code)
    print("重定向目标:", response.headers.get('Location'))
    print("前500字响应内容:", response.text[:500])
    gateway.shutdown()

如果返回的重定向地址就是当前请求的地址,说明触发了站点的反爬规则,返回了循环重定向;如果跳转到登录/验证页,说明需要补充校验参数。

  • 补全完整请求头
    多数站点不会只校验User-Agent,还会校验其他浏览器标准头,补充以下头信息再尝试:
session.headers.update({
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'Referer': 'https://spare.avspart.com/'
})
  • 修正网关Host头配置
    ApiGateway默认转发时可能会使用AWS网关的域名作为Host头,触发站点的域名校验,导致强制重定向到正确域名,形成死循环。修改网关初始化参数,强制指定Host头:
gateway = ApiGateway("https://spare.avspart.com", 
                     regions=EXTRA_REGIONS, 
                     access_key_id = 'my key', 
                     access_key_secret = 'my secret key',
                     host="spare.avspart.com")
  • 解决TLS指纹识别问题
    如果以上步骤都无效,说明站点识别了requests的默认TLS指纹,就算更换IP也会被拦截。可以使用curl_cffi库替代requests,模拟真实浏览器的TLS指纹,配合IP轮换方案使用。
  • 手动处理重定向
    如果存在少量跳转,可以禁用自动重定向,手动处理每一次跳转,每次跳转都重新生成新的网关会话,避免同一个IP触发多次拦截。

内容的提问来源于stack exchange,提问作者user6009994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:36:04