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

Undetected_chromedriver被检测问题求助(Python+Selenium)

解决方案

1. 优化undetected_chromedriver初始化逻辑

不要手动指定executable_path,让undetected_chromedriver自动匹配本地Chrome版本,手动指定路径可能引入版本不匹配或固定特征被识别:

# 移除executable_path参数,让uc自动处理版本匹配
driver = uc.Chrome(options=options)

2. 补充反检测Chrome选项

在现有配置基础上添加以下关键参数,进一步隐藏自动化特征:

# 核心:禁用Chrome自动化检测标志
options.add_argument("--disable-blink-features=AutomationControlled")
# 避免沙箱模式特征
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
# 随机化窗口尺寸(替代固定非默认尺寸,减少特征唯一性)
import random
width = random.randint(1100, 1700)
height = random.randint(700, 1100)
options.add_argument(f"--window-size={width},{height}")
# 添加真实User-Agent(可从你的Chrome浏览器复制,或随机生成)
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36")
# 禁用自动化相关开关
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

3. 模拟真实用户交互行为

避免机械性操作,添加随机延迟和分步输入:

import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

# 打开登录页后随机等待2-5秒
time.sleep(random.uniform(2, 5))

# 分步输入用户名,模拟真实按键间隔
username_input = driver.find_element(By.ID, "username")
for char in "your_username":
    username_input.send_keys(char)
    time.sleep(random.uniform(0.1, 0.3))

# 随机延迟后输入密码
time.sleep(random.uniform(1, 2))
password_input = driver.find_element(By.ID, "password")
for char in "your_password":
    password_input.send_keys(char)
    time.sleep(random.uniform(0.1, 0.3))

# 随机延迟后点击登录按钮,模拟鼠标移动点击
time.sleep(random.uniform(1, 3))
login_button = driver.find_element(By.ID, "login-btn")
ActionChains(driver).move_to_element(login_button).click().perform()

4. 使用真实Chrome用户配置文件

加载本地已使用过的Chrome用户数据目录,让浏览器环境完全接近真实用户:

# 替换为你的Chrome用户数据路径(注意路径格式)
options.add_argument(r"user-data-dir=C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data")
# 可选:指定具体用户配置文件(如果有多个用户)
options.add_argument(r"profile-directory=Default")

5. 控制请求频率

短时间内频繁测试会触发网站风控,建议:

  • 两次登录操作间隔至少5-10分钟(随机化间隔)
  • 连续失败后不要立即重试,间隔15分钟以上

6. 升级依赖环境

Python 3.7已停止维护,建议升级到3.8+,同时更新undetected_chromedriver到最新兼容版本,修复已知的检测漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:55:20