如何使用Python Selenium登录bet365 解决账号信息未识别问题
问题判定
这个问题属于bet365反自动化检测机制拦截,并非站点本身故障。由于手动登录可正常通过,已排除账号密码错误、站点服务异常的可能性:bet365内置了成熟的反爬规则,可识别Selenium的自带特征、自动化操作轨迹,检测到非人工操作时,会故意返回「登录信息未识别」的错误提示,哪怕输入的账号密码完全正确。
可行解决方案
按优先级执行以下优化即可解决:
- 隐藏Selenium核心标识
启动Chrome时添加参数抹除自动化工具特征,示例配置如下: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后执行CDP命令覆盖webdriver等指纹属性 self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { "source": """ Object.defineProperty(navigator, 'webdriver', {get: () => undefined}); window.navigator.chrome = {runtime: {}}; Object.defineProperty(navigator, 'plugins', {get: () => [1, 2, 3]}); Object.defineProperty(navigator, 'languages', {get: () => ['zh-CN', 'zh']}); """ }) - 模拟真实用户操作轨迹
不要直接一次性填入账号密码、无延迟点击操作:- 输入内容时每个字符间隔0.1~0.3秒的随机延迟,不要调用
clear()后直接send_keys()全量内容 - 点击元素前用
ActionChains模拟鼠标随机移动到元素附近,再执行点击操作 - 密码输入完成后加1~2秒的随机延迟,再触发登录提交
- 输入内容时每个字符间隔0.1~0.3秒的随机延迟,不要调用
- 对齐本地浏览器环境
优先加载你本地Chrome的用户配置文件,让自动化环境和你手动登录的浏览器指纹、Cookie、插件等完全匹配,配置示例:# 注意替换路径为你本地Chrome用户数据的实际路径,使用前要关闭所有正在运行的Chrome窗口 chrome_options.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data") - 修正现有代码的细节问题
你当前代码里的class定位值末尾带了多余空格,比如hm-MainHeaderRHSLoggedOutWide_Login、lms-StandardLogin_Username后面的空格会导致定位匹配失效,需要把class值末尾的空格删掉。
内容的提问来源于stack exchange,提问作者Demaxl
相关产品推荐
相关产品推荐

