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

使用Selenium自动化登录时避免频繁验证码问题

解决Selenium登录时频繁触发验证码的方法

嘿,这个场景我太熟悉了——用Selenium做自动化登录,本来想手动填验证码,结果一点击就狂弹验证码甚至报错,本质上是网站把你的Selenium会话判定成机器人了。试试下面这些实用的方法,能大幅降低被检测的概率:

1. 模拟真实用户的操作节奏与行为

网站的反爬系统会盯着“非人类”的操作模式,比如瞬间点击、无停顿的连续操作。你可以这样调整:

  • 不要一打开页面就直奔验证码按钮:先移动鼠标到账号输入框,停留1-2秒再点击输入;输完账号后停顿1-3秒,再慢慢移动到验证码区域点击。
  • 用ActionChains模拟平滑的鼠标动作,避免生硬的点击:
    from selenium.webdriver.common.action_chains import ActionChains
    import random
    
    # 找到验证码元素
    captcha_box = driver.find_element(By.CSS_SELECTOR, ".captcha-container")
    # 模拟移动到元素,随机停顿后点击
    ActionChains(driver)\
        .move_to_element(captcha_box)\
        .pause(random.uniform(1, 3))\
        .click()\
        .perform()
    
  • 每一步操作之间加随机时长的停顿(不要用固定的time.sleep(2)),更接近真实用户的行为习惯。

2. 优化Selenium配置,隐藏自动化特征

Selenium默认的配置有很多“机器人标识”,网站很容易识别:

  • 禁用自动化提示:Chrome默认会显示“受自动测试软件控制”的提示,直接隐藏它:
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    # 核心:禁用自动化检测
    chrome_options.add_argument("--disable-blink-features=AutomationControlled")
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    chrome_options.add_experimental_option('useAutomationExtension', False)
    # 初始化驱动
    driver = webdriver.Chrome(options=chrome_options)
    
  • 使用真实的用户代理(User-Agent):替换成你日常用的浏览器UA(比如Chrome最新版的),避免用Selenium默认的UA:
    chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
    
  • 加载真实的浏览器用户数据:第一次手动完成登录(包括验证码)后,保存Chrome的用户数据目录,后续Selenium启动时加载这个目录,让会话带有“老用户”的痕迹:
    # 替换成你的Chrome用户数据路径,比如Windows下的默认路径
    chrome_options.add_argument(r"user-data-dir=C:\Users\YourName\AppData\Local\Google\Chrome\User Data")
    chrome_options.add_argument("--profile-directory=Default")
    

3. 避免高频重复的异常操作

  • 不要短时间内多次启动Selenium会话尝试登录,网站会把这种高频请求标记为恶意行为,建议间隔至少10分钟以上再重试。
  • 不要一直用同一个账号测试,换几个不同的账号交替操作,减少单一账号的异常行为记录。

4. 模拟真实用户的浏览细节

有些网站会检测更细微的用户行为:

  • 打开页面后先滚动几下页面,再进行登录操作,模拟用户浏览内容的动作。
  • 手动点击验证码前,随意移动鼠标在页面上晃几下,不要直接直线移动到验证码按钮,让鼠标轨迹更自然。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:13:35