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

使用Firefox+Selenium无法绕过Cloudflare人机验证CAPTCHA

问题描述

我尝试用Selenium结合Firefox自动化ChatGPT的登录流程,但卡在了Cloudflare的“Verify you are human”CAPTCHA验证页面。试过伪造User Agent、禁用WebDriver标志等多种配置,都绕不过这个验证。

当前使用的代码

from selenium import webdriver 
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
from fake_useragent import UserAgent

MAIL = "CHATGPTEMAIL"
PASSWORD = "CHATGPTPASSWORD"
options = webdriver.FirefoxOptions()
options.add_argument("--log-level=3")
options.add_argument(f"user-agent={UserAgent().random}")
options.add_argument("user-data-dir=./")
options.add_argument("--disable-blink-features=AutomationControlled")
options.set_preference("dom.webdriver.enabled", False)  # Disable WebDriver flag
options.set_preference("useAutomationExtension", False)  # Avoid using automation extension
options.set_preference("general.useragent.override", "YourRandomUserAgentHere")  # Custom User-Agent

options.add_argument("--headless")  # Optional: run in headless mode
browser = webdriver.Firefox(options=options)

browser.get('https://chat.openai.com/auth/login')
sleep(4)

# Try clicking the first button to proceed with login
inputElements = browser.find_elements(By.TAG_NAME, "button")
inputElements[0].click()
sleep(3)

# Enter email
mail = browser.find_elements(By.NAME,"email")[0]
mail.send_keys(MAIL)

# Click the next button
btn = browser.find_elements(By.TAG_NAME, "button")[0]
btn.click()

# Enter password
password = browser.find_elements(By.NAME,"password")[0]
password.send_keys(PASSWORD)
sleep(2)

browser.quit()

已尝试的方法

  • 使用fake_useragent库更换不同的User Agent
  • 禁用dom.webdriver.enabled和useAutomationExtension标志
  • 以无头模式运行Firefox
  • 直接添加自定义User Agent字符串

疑问

  1. 是否存在使用Selenium绕过Cloudflare CAPTCHA的可行方案?
  2. 有人成功使用Selenium自动化ChatGPT或其他受Cloudflare保护站点的登录流程吗?
  3. 有没有针对Firefox的特定配置可以解决此问题?
  4. 任何关于绕过或处理该CAPTCHA的建议都将非常感谢!

解答

1. Selenium绕过Cloudflare CAPTCHA的可行方案

直接用Selenium原生功能绕过Cloudflare CAPTCHA几乎不可能——Cloudflare的检测机制不仅看WebDriver标志,还会分析鼠标移动轨迹、点击节奏、页面交互模式等自动化特征,单纯改User Agent或禁用几个配置项很难骗过它的高级检测。

可行的间接处理方式:

  • 手动介入验证:在代码中暂停,让用户手动完成CAPTCHA验证后再继续执行。比如在打开登录页后添加input("完成CAPTCHA验证后按回车继续..."),等用户操作完毕再往下执行后续步骤。
  • 复用已登录缓存:先手动打开Firefox登录ChatGPT并完成所有验证,然后将Selenium的user-data-dir指定到这个已登录的浏览器配置目录,启动时会直接复用登录状态,跳过验证和登录流程。

2. 成功用Selenium自动化ChatGPT登录的情况

确实有不少人实现,但大多不是纯靠Selenium绕过CAPTCHA,而是结合了复用已登录缓存的方式;还有部分人使用undetected-chromedriver这类修改过的Chrome驱动(它能隐藏更多自动化特征),不过该工具对Firefox的支持不如Chrome。另外,使用第三方CAPTCHA破解平台虽然能绕过,但这类行为可能违反Cloudflare和OpenAI的服务条款,不推荐。

3. Firefox的特定配置优化

除了你已尝试的配置,还可以试试这些:

  • 关闭无头模式:无头模式本身就是Cloudflare重点检测的特征,换成正常窗口模式能降低被检测概率。
  • 指定日常使用的配置文件:不要用临时的user-data-dir=./,而是指定你日常登录ChatGPT的Firefox配置文件路径(比如Windows下的C:\Users\<用户名>\AppData\Roaming\Mozilla\Firefox\Profiles\<配置文件夹>),该配置文件有正常的浏览行为记录,更容易通过检测。
  • 添加额外偏好设置:
    • options.set_preference("browser.sessionstore.resume_from_crash", False):避免会话恢复时暴露自动化痕迹
    • options.set_preference("privacy.resistFingerprinting", True):减少浏览器指纹特征,但可能影响部分页面功能

4. 其他处理CAPTCHA的建议

  • 模拟人类操作节奏:不要用固定的sleep时长,换成随机间隔(比如sleep(random.uniform(2,5))),点击、输入操作也不要过于机械,尽量模拟真实用户的交互速度。
  • 优先使用官方API:如果只是想调用ChatGPT的功能,OpenAI提供了官方API,完全不需要自动化浏览器,这是最稳定、合规的方案,比Selenium自动化登录靠谱得多。
  • 注意合规风险:无论是使用破解服务还是过度模拟人类操作,都可能违反OpenAI和Cloudflare的服务条款,导致账号被封禁,建议优先选择官方API或手动登录复用缓存的方式。

内容的提问来源于stack exchange,提问作者Ferda-Ozdemir-Sonmez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:45:59