已尝试多种措施仍被kleinanzeigen.de检测到Selenium,求解决方案
针对kleinanzeigen.de自动化检测的分析与规避方案
一、网站可能的检测机制
- 浏览器指纹全维度识别:除了
navigator.webdriver,还会校验window.chrome属性、插件列表、屏幕参数、字体库、Canvas/WebGL指纹等细节,自动化浏览器与真实浏览器的指纹差异会被精准捕捉。 - CDP命令调用痕迹:直接执行
execute_cdp_cmd会留下特殊操作标记,部分网站会监控这类非用户原生的调用行为。 - 页面操作行为特征:自动化工具的页面加载顺序、资源请求节奏、操作连贯性和真实用户差异明显,比如无停顿的点击、机械的鼠标移动轨迹。
- 账号设备关联校验:同一账号突然切换到自动化浏览器,即使IP不变,设备指纹不匹配也会触发封禁逻辑。
- 滑块验证后行为检测:完成滑块后,网站会验证后续操作的自然度,比如是否立即点击登录、鼠标是否有真实的停顿和移动路径。
二、具体规避方法
1. 完整模拟真实浏览器指纹
放弃手动修改属性的方式,用selenium-stealth配置全维度参数覆盖指纹:
from selenium import webdriver from selenium_stealth import stealth import time options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) driver = webdriver.Chrome(options=options) stealth(driver, languages=["de-DE", "de"], vendor="Google Inc.", platform="Win32", webgl_vendor="Intel Inc.", renderer="Intel Iris OpenGL Engine", fix_hairline=True, ) driver.get("https://www.kleinanzeigen.de") time.sleep(3)
注意:确保selenium-stealth为最新版本,chromedriver版本与本地Chrome完全匹配。
2. 复用本地真实Chrome配置
直接调用本地已安装的Chrome实例,共享真实浏览器的缓存、插件、字体等配置,消除指纹差异:
options = webdriver.ChromeOptions() # 替换为你的Chrome用户数据路径 options.add_argument("user-data-dir=C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data") options.add_argument("--profile-directory=Default") # 使用默认配置文件 driver = webdriver.Chrome(options=options)
3. 模拟真实用户操作节奏
- 页面加载后添加2-5秒随机延迟,模拟用户浏览时间。
- 用
ActionChains模拟自然鼠标移动:从屏幕边缘随机路径移动到目标元素,中间加入停顿,避免直接点击。 - 滑块验证完成后,先移动鼠标到页面空白区域停留1-2秒,再点击登录按钮。
4. 避免直接调用CDP命令
依赖selenium-stealth封装好的方法修改浏览器属性,减少手动执行execute_cdp_cmd的操作,降低被检测概率。
5. 修复chromedriver特征字符串
用十六进制编辑器打开chromedriver.exe,将所有cdc_开头的字符串替换为等长随机字符串(比如xyz_),同时确保chromedriver与Chrome版本严格匹配。
6. 保持会话与设备一致性
使用上述复用Chrome配置的方式,让自动化浏览器的会话、设备指纹与之前真实操作完全一致,避免触发账号异常检测。
三、额外注意事项
- 控制操作频率,模拟真实用户的发布/删除节奏,避免短时间内批量操作。
- 同一账号不要在多个自动化设备上登录,保持设备指纹唯一性。
内容的提问来源于stack exchange,提问作者Hannes
相关产品推荐
相关产品推荐

