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

如何使用Python Selenium WebDriver绕过reCAPTCHA完成网页爬取

Selenium 绕过 reCAPTCHA 可行方案

核心前置:消除 Selenium 自动化检测特征

你被阻止点击验证控件的核心原因是 reCAPTCHA 识别到了 Selenium 默认的自动化标识,先通过以下配置屏蔽特征:

  • 修改 Chrome 启动参数与运行时属性,示例代码:
from selenium import webdriver
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)
# 替换真实浏览器UA,避免使用无头模式默认UA
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36")

driver = webdriver.Chrome(options=chrome_options)
# 执行CDP命令覆盖会被检测的浏览器属性
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": """
        Object.defineProperty(navigator, 'webdriver', {get: () => undefined})
        window.chrome = window.chrome || {}
        navigator.plugins.length = 3
        navigator.languages = ['en-US', 'en']
    """
})
  • 模拟真人操作行为,不要直接点击验证控件,使用动作链添加随机延迟与鼠标移动轨迹:
from selenium.webdriver.common.action_chains import ActionChains
import time, random

action = ActionChains(driver)
# 先随机移动鼠标,再移动到验证框
action.move_by_offset(random.randint(20, 60), random.randint(20, 60))
action.pause(random.uniform(0.4, 1.2))
# 定位reCAPTCHA勾选框iframe
captcha_iframe = driver.find_element("xpath", '//iframe[contains(@src, "recaptcha/api2/anchor")]')
action.move_to_element(captcha_iframe).pause(random.uniform(0.2, 0.7)).click().perform()
time.sleep(random.uniform(1, 2))

音频验证逻辑优化

消除特征后再执行音频验证流程,注意两点:

  • 音频文件下载后使用本地语音识别库(如SpeechRecognition)解析内容,不要调用第三方在线接口降低风控概率
  • 提交识别结果时添加1-3秒随机延迟,避免机器操作特征

低成本替代方案

如果原生Selenium配置后依旧被检测,可以直接使用undetected-chromedriver库,该库默认已屏蔽几乎所有Selenium自动化特征,示例代码:

import undetected_chromedriver as uc
# 版本号与本地安装的Chrome主版本保持一致即可
driver = uc.Chrome(version_main=116)
driver.get("https://publicrecordsaccess.fultoncountyga.gov/Portal/Home/Dashboard/29")

注意:不要使用无头模式运行,无头模式的识别特征非常容易被reCAPTCHA拦截,需要后台运行可以使用虚拟桌面工具实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 02:39:01