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

Selenium爬取leboncoin手动过验证码仍陷入循环问题

问题根本原因

DataDome的风控逻辑不是单次验证码校验,是全程采集浏览器指纹+行为特征综合判定,手动过验证码后依然循环跳验证,核心是Selenium启动的浏览器暴露了明确的自动化特征,被风控系统判定为机器人直接拒绝放行:

  • 默认Selenium启动的Chrome会携带enable-automation启动标识,navigator.webdriver属性默认为true,Blink内核会暴露AutomationControlled特征,这些都是DataDome规则里明确标记的机器人特征,哪怕手动完成验证码交互,系统检测到这些特征就会重置验证流程。
  • 每次启动Selenium都是全新的无任何用户数据的裸浏览器环境,没有历史访问记录、站点Cookie、本地缓存,这种环境本身就属于高风险特征,风控权重很高。
  • 代码里连续两次无间隔发起页面请求,没有任何真人访问的停顿、页面交互行为,访问行为特征触发了机器人规则。
可落地解决步骤
  • 第一步:抹除基础自动化特征,在初始化Chrome Options时添加如下配置,启动后注入脚本覆盖自动化标识:
from selenium import webdriver
import time

options = webdriver.ChromeOptions()
options.add_argument("--log-level=3")
# 排除自动化启动开关
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
# 禁用Blink层的自动化控制特征
options.add_argument("--disable-blink-features=AutomationControlled")

driver = webdriver.Chrome(executable_path='chromedriver', options=options)
# 注入脚本覆盖navigator.webdriver属性,避免被检测
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
  • 第二步:配置持久化浏览器用户目录,不要每次启动都用全新环境。本地新建一个空文件夹,把路径加到启动参数里,第一次启动手动完成验证码验证后,站点的Cookie、验证状态会存在这个目录里,后续启动复用即可大幅降低风控等级:
# 替换为你自己本地新建的空文件夹的绝对路径
options.add_argument("--user-data-dir=C:/selenium_chrome_profile")
  • 第三步:模拟正常用户访问行为,不要无间隔连续跳转页面。访问首页后停顿3-5秒,做一点简单的页面滚动,再跳转目标商品页,避免行为特征触发风控:
driver.get("https://www.leboncoin.fr")
# 模拟真人停顿
time.sleep(4)
# 简单滚动页面
driver.execute_script("window.scrollTo(0, 300)")
time.sleep(2)
url = "https://www.leboncoin.fr/voitures/2182521551.htm"
driver.get(url)
  • 注意事项:不要开启无头模式,无头模式下的浏览器渲染特征、指纹和正常桌面浏览器差异极大,会被DataDome直接识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:48:58