如何用Python Selenium绕过Google机器人检测?登录遭安全验证报错
解决Google登录提示"This browser or app may not be secure"的问题
针对你遇到的Google登录检测问题,以下是几个验证有效的解决办法:
1. 补充更多模拟真实浏览器的启动参数
在现有ChromeOptions基础上,添加以下参数进一步消除自动化特征:
chrome_options.add_argument("--start-maximized") # 最大化窗口,模拟真实用户操作习惯 chrome_options.add_argument("--no-sandbox") # 禁用沙箱模式,避免部分环境下的异常检测 chrome_options.add_argument("--disable-dev-shm-usage") # 解决/dev/shm内存不足引发的特征暴露 chrome_options.add_argument("--disable-extensions") # 禁用扩展,减少浏览器异常特征 # 替换为你当前使用的Chrome浏览器真实User-Agent,可在浏览器控制台输入navigator.userAgent获取 chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36")
2. 手动覆盖navigator.webdriver属性
即使添加了--disable-blink-features=AutomationControlled,部分场景下仍需手动消除该特征,在打开Google页面前执行脚本:
chrome_driver = Chrome(options=chrome_options, executable_path=PATHS.CHROME_DRIVER) # 注入脚本隐藏webdriver标识 chrome_driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") chrome_driver.get(r"https://www.google.com/")
3. 确保Chrome与ChromeDriver版本完全匹配
Google的检测逻辑会随浏览器版本迭代更新,必须保证你的Chrome浏览器和ChromeDriver版本主版本号、次版本号完全一致。如果版本不匹配,立即下载对应版本的ChromeDriver替换。
4. 使用undetected-chromedriver绕过检测
如果手动配置参数仍无效,推荐使用专门针对反爬优化的undetected-chromedriver库,它会自动处理大部分检测逻辑:
先安装库:
pip install undetected-chromedriver
再替换你的代码:
import undetected_chromedriver as uc from selenium.webdriver import ChromeOptions chrome_options = ChromeOptions() chrome_options.add_argument("--lang=en-US") chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) chrome_options.add_argument(f'--user-data-dir={PATHS.CHROME_SYS_PATH}') chrome_options.add_argument(f'--profile-directory={sub_dir}') # 初始化绕过检测的驱动 chrome_driver = uc.Chrome(options=chrome_options) chrome_driver.get(r"https://www.google.com/")
内容的提问来源于stack exchange,提问作者Soufiane
相关产品推荐
相关产品推荐

