使用Selenium ChromeDriver访问Glassdoor时Gmail登录提示不安全如何解决
问题原因
该报错不属于常规浏览器设置问题,是Selenium启动的ChromeDriver实例默认会暴露navigator.webdriver等自动化控制特征,Google的账号安全风控体系识别到是非用户手动操作的浏览器环境,因此判定为不安全访问触发登录拦截。
可行解决方案
- 方案1:添加Chrome启动参数屏蔽自动化特征
启动Chrome时增加配置项隐藏Selenium控制痕迹,示例代码如下:
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) driver = webdriver.Chrome(options=chrome_options) # 进一步覆写webdriver属性消除特征 driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": """ Object.defineProperty(navigator, 'webdriver', { get: () => undefined }) """ })
- 方案2:加载本地已登录Gmail的Chrome用户配置
直接调用你本地Chrome的已登录用户数据,不需要走Selenium环境下的Gmail登录流程:
首先在Chrome地址栏输入chrome://version/查看「个人资料路径」,再将路径添加到启动参数中:
# 路径替换为你本地查到的个人资料路径 chrome_options.add_argument(r"--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data") # 多用户配置的情况下指定对应Profile,默认Profile可省略该行 chrome_options.add_argument(r"--profile-directory=Default")
注意:启动Selenium前需要关闭所有本地打开的Chrome窗口,否则会出现配置占用冲突
- 方案3:使用Undetected Chromedriver
这是针对Selenium风控问题优化的封装工具,默认屏蔽所有自动化特征,绕过登录限制的成功率更高:
安装命令:pip install undetected-chromedriver
示例代码:
import undetected_chromedriver as uc driver = uc.Chrome() driver.get("https://www.glassdoor.com")
内容的提问来源于stack exchange,提问作者Sumit Vaz
相关产品推荐
相关产品推荐

