如何使用Selenium Python在Chrome登录谷歌账号?解决安全提示错误
解决Selenium登录谷歌账号提示“此浏览器或应用可能不安全”的方法
谷歌会检测Selenium的自动化特征,导致登录时触发安全验证,以下是几个可行的解决办法:
方法1:加载本地Chrome用户数据目录
如果你的本地Chrome已经登录过目标谷歌账号,可以直接让Selenium复用这个登录状态,绕过验证:
- 找到本地Chrome的用户数据路径:
- Windows:
C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data - macOS:
~/Library/Application Support/Google/Chrome/ - Linux:
~/.config/google-chrome/
- Windows:
- 在Selenium中配置参数:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() # 替换为你的Chrome用户数据路径 options.add_argument(r"user-data-dir=C:\Users\YourName\AppData\Local\Google\Chrome\User Data") # 指定配置文件(默认是Default,有多个账号可改对应文件夹名) options.add_argument("profile-directory=Default") driver = webdriver.Chrome(options=options) driver.get("https://accounts.google.com")
注意:运行前要关闭所有本地Chrome窗口,否则会出现进程冲突。
方法2:修改浏览器参数绕过自动化检测
通过修改Chrome启动参数和JS属性,隐藏Selenium的特征:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() # 禁用自动化检测标记 options.add_argument("--disable-blink-features=AutomationControlled") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) # 补充优化参数 options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(options=options) # 篡改navigator.webdriver属性,避免被检测 driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") driver.get("https://accounts.google.com")
这种方法的有效性会随谷歌检测逻辑更新而变化,若触发验证码需手动完成验证。
方法3:使用undetected-chromedriver库
这个库专门针对谷歌的检测机制做了优化,绕过验证的成功率较高:
- 安装库:
pip install undetected-chromedriver
- 使用示例:
import undetected_chromedriver as uc # 初始化浏览器 driver = uc.Chrome() driver.get("https://accounts.google.com") # 之后正常输入账号密码即可
内容的提问来源于stack exchange,提问作者Vaishnav Dounde
相关产品推荐
相关产品推荐

