使用Selenium访问temp-mail.org无法通过Cloudflare验证如何解决
解决Selenium访问temp-mail.org无法通过Cloudflare验证的方案
问题原因
原生Selenium驱动会默认携带navigator.webdriver等自动化特征标记,Cloudflare的反爬系统可直接识别到非人工访问,因此拦截请求触发验证。
解决方案
方案1:使用undetected-chromedriver(推荐)
该库专门对ChromeDriver的特征做了抹除处理,可绕过绝大多数自动化检测规则。
- 安装依赖
执行命令:pip install undetected-chromedriver - 修改后的代码
import time import undetected_chromedriver as uc browser = uc.Chrome() browser.get("https://temp-mail.org/") time.sleep(15) # 此处添加你后续获取临时邮箱的操作逻辑 browser.close()
方案2:原生ChromeDriver添加反检测参数
如果不想额外安装第三方库,可以给原生驱动添加配置抹除特征:
import time 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标识 chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36") browser = webdriver.Chrome(options=chrome_options) # 覆盖浏览器webdriver属性 browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})" }) browser.get("https://temp-mail.org/") time.sleep(10) browser.close()
额外注意事项
- 保持Chrome浏览器和ChromeDriver的版本一致,版本差异过大也容易触发检测
- 可适当延长页面等待时间,Cloudflare验证加载完成最长需要5秒左右,不要提前执行后续操作
- 若仍无法通过验证,可尝试切换网络IP,同一IP短时间内多次访问该站点会触发更高等级的验证限制
内容的提问来源于stack exchange,提问作者dasdasddas dsadasd
相关产品推荐
相关产品推荐

