Python 2.7+Chrome Selenium遭券商网站检测致登录失败求助
券商网站Selenium机器人检测的解决办法
一、修改Chrome启动参数,伪装真实浏览器
- 关闭Selenium标志性特征:添加启动参数
--disable-blink-features=AutomationControlled,再执行代码隐藏webdriver属性:driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")。 - 复用本地Chrome配置:启动时加入
--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data(Windows路径,Mac/Linux自行对应修改),直接使用你日常登录该券商网站的Chrome环境,新环境极易触发检测。 - 补全模拟参数:搭配
--start-maximized(最大化窗口)、--disable-extensions(关闭扩展)、--no-sandbox(部分环境需关闭沙箱)、--disable-dev-shm-usage(解决内存问题),让浏览器状态与手动启动完全一致。
二、模拟人类操作节奏
- 不要直接跳转登录页,先访问网站首页,等待2-3秒后再点击登录按钮,还原用户正常操作流程。
- 输入账号密码时,每个字符间加入0.1-0.3秒的随机间隔,用
time.sleep(random.uniform(0.1,0.3))实现,避免机械性快速输入。
三、用专用驱动绕过指纹检测
- 安装
undetected-chromedriver的Python2.7兼容版本(需找适配2.7的包),该驱动会自动修改Chrome指纹特征,规避大部分基础检测。替换原有ChromeDriver初始化代码:import undetected_chromedriver as uc driver = uc.Chrome() - 手动设置浏览器语言、时区,比如添加
--lang=zh-CN参数,与你日常使用环境保持一致。
四、复用已登录Cookie
- 手动登录一次券商网站,用Chrome插件(如EditThisCookie)导出Cookie,在Selenium启动后,先访问网站域名,再批量导入Cookie:
直接进入已登录状态,跳过登录环节的检测。cookies = [{'name': 'xxx', 'value': 'xxx', 'domain': 'xxx.com'}, ...] driver.get("https://xxx.com") for cookie in cookies: driver.add_cookie(cookie) driver.refresh()
五、其他注意细节
- 避免频繁操作,每次操作间隔至少1秒,短时间内重复登录易触发频率限制。
- 确认ChromeDriver与你的Chrome浏览器版本完全匹配,版本不匹配也可能导致异常行为被检测。
内容的提问来源于stack exchange,提问作者gvphubli.blogspot.com
相关产品推荐
相关产品推荐

