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

Python请求下载CSV文件遭拦截,寻求更稳定的实现方案

解决方案:绕过批量CSV下载的反爬拦截

这种高频请求触发的反爬拦截在数据爬取场景里太常见了!我之前做批量数据下载时也踩过一模一样的坑,咱们一步步优化你的实现,尽量模拟真实用户的行为来绕过限制:

  • 完善请求头,完全模拟真实浏览器
    很多网站会校验User-Agent、Referer甚至Cookie信息,你代码里的默认请求头和手动浏览时的差异很大,很容易被识别。建议打开浏览器开发者工具(F12),复制手动下载时的完整请求头,尤其是Cookie(如果需要登录态)和User-Agent字段。
    示例代码:

    import requests
    from time import sleep
    
    # 复制浏览器里的真实请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
        'Referer': 'https://目标网站的页面URL',  # 下载按钮所在的页面地址
        'Cookie': '这里粘贴你手动访问时复制的Cookie字符串'
    }
    
    download_url = '你的CSV下载链接'
    response = requests.get(download_url, headers=headers)
    with open('output.csv', 'wb') as f:
        f.write(response.content)
    
  • 添加随机请求间隔,避免机械高频请求
    连续五六次无间隔请求太像爬虫了!人类手动下载不可能这么快,建议在每次请求后添加1-3秒的随机等待时间,模拟正常操作节奏。
    示例:

    import random
    
    # 每次请求后随机等待1-3秒
    sleep(random.uniform(1, 3))
    
  • 用Session维持会话状态
    手动浏览时浏览器会自动维持会话(比如Cookie、会话标识),但直接用requests.get()每次都是独立请求,容易被判定为异常。用requests.Session()可以绑定会话状态,和浏览器行为更一致。
    示例:

    # 创建会话对象,自动维持Cookie等会话信息
    session = requests.Session()
    session.headers.update(headers)
    
    # 先访问一次目标页面,预热会话(获取必要的会话标识)
    session.get('目标网站的首页或下载按钮所在页面URL')
    
    # 再执行下载请求
    response = session.get(download_url)
    with open('output.csv', 'wb') as f:
        f.write(response.content)
    
  • IP轮换(如果拦截仍未解除)
    如果网站限制了单IP的请求频率,以上方法可能还是不够。可以准备一个代理IP池,每次请求随机切换代理,避免IP被封禁。
    示例:

    proxies_pool = [
        {'http': 'http://代理IP1:端口', 'https': 'https://代理IP1:端口'},
        {'http': 'http://代理IP2:端口', 'https': 'https://代理IP2:端口'}
    ]
    
    # 随机选一个代理
    selected_proxy = random.choice(proxies_pool)
    response = session.get(download_url, proxies=selected_proxy)
    
  • 检查下载链接是否动态生成
    有些网站的下载链接是临时的,每次请求都会生成新的URL,或者需要先调用某个接口获取下载权限。如果你的代码用的是固定URL,多次请求后可能已经失效。可以用浏览器抓包工具,确认每次下载的真实请求链接是否有变化,是否需要先发送POST请求获取下载凭证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:59:18