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

爬取coches.net时GET请求返回错误页面,遭反爬识别求助

解决coches.net反爬拦截的方案
  • 补全请求头字段:仅设置User-Agent不足以模拟真实浏览器,需添加更多关键请求头,让请求更接近人类访问行为:

    import random
    import requests
    from bs4 import BeautifulSoup
    
    desktop_agents = [
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'
    ]
    
    headers = {
        'User-Agent': random.choice(desktop_agents),
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Language': 'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3',
        'Referer': 'https://www.coches.net/',
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1'
    }
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")
    print(response.text)
    
  • 添加随机请求延迟:避免短时间内频繁发起请求,每次请求后加入2-5秒的随机延迟,模拟人类浏览的间隔节奏:

    import time
    
    # 请求完成后添加延迟
    time.sleep(random.uniform(2, 5))
    
  • 使用会话保持状态:用requests.Session()维持会话,模拟浏览器的Cookie持久化机制,很多网站会通过Cookie验证会话的合法性:

    session = requests.Session()
    session.headers.update(headers)
    # 先请求首页获取初始Cookie
    session.get('https://www.coches.net/')
    # 再发起目标页面请求
    response = session.get(url)
    
  • 应对Cloudflare验证:如果网站启用了Cloudflare防护,单纯的请求头和延迟可能无法绕过,可以尝试使用cfscrape库(需配合Node.js环境),或者直接用Selenium模拟真实浏览器的点击、加载行为。

  • 验证请求URL有效性:确认目标URL是否需要从首页跳转后访问,直接请求深层页面容易被系统判定为异常请求。

内容的提问来源于stack exchange,提问作者Adri Nuñez Font

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:32:48