You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium自动化Discover信用卡网站登录遇浏览器过时提示问题

解决Discover信用卡网站Selenium登录被拦截问题

你的三个问题解答:

  1. 代码和访问方式存在问题:

    • chromedriver版本未完全匹配Chrome浏览器,哪怕同大版本下的小版本差异也可能触发网站检测;
    • 代码未配置任何模拟真实用户的参数,且开启accept_insecure_certs可能让网站判定环境不安全;
    • implicitly_wait与time.sleep混用,操作行为过于机械(比如一次性输入账号密码),容易被识别为机器人。
  2. 核心是未充分模拟真实用户,而非Cookie/SSL问题:

    • Selenium默认会暴露自动化特征(如window.navigator.webdriver为true),哪怕用undetected_chromedriver/selenium-stealth,若配置不到位仍会被网站检测到;
    • 需要从浏览器参数、环境特征、操作行为多个维度模拟真实用户浏览场景。
  3. Discover的反爬机制确实严格:

    • 金融类网站对自动化登录的检测标准极高,会从浏览器特征、操作节奏、访问轨迹等多维度判定是否为机器人,即使优化代码也存在被拦截的可能。

具体优化方案:

1. 确保chromedriver与Chrome版本完全一致

打开Chrome设置 → 关于Chrome,查看完整版本号(比如109.0.5414.120),下载对应版本的chromedriver,确保路径配置正确。

2. 优化浏览器配置,隐藏自动化特征

修改Options配置,添加以下参数:

opts = Options()
# 禁用自动化检测标志
opts.add_argument("--disable-blink-features=AutomationControlled")
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
# 设置真实Chrome的User-Agent(替换成你浏览器的UA)
opts.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36")
# 窗口最大化,模拟真实用户场景
opts.add_argument("--start-maximized")
# 注释掉不安全的证书接受配置
# opts.accept_insecure_certs = True

3. 用selenium-stealth完善环境模拟

安装selenium-stealth后,添加以下代码模拟真实浏览器环境:

from selenium_stealth import stealth

browser = Chrome(service=s, options=opts)
# 模拟真实浏览器的环境特征
stealth(browser,
        languages=["en-US", "en"],
        vendor="Google Inc.",
        platform="Win32",
        webgl_vendor="Intel Inc.",
        renderer="Intel Iris OpenGL Engine",
        fix_hairline=True,
        )

4. 模拟真实输入行为

避免一次性输入账号密码,加入随机延迟模拟手动输入节奏:

import random

def slow_type(element, text):
    for char in text:
        element.send_keys(char)
        time.sleep(random.uniform(0.1, 0.3))  # 随机延迟0.1-0.3秒,模拟真实输入速度

# 替换原有的send_keys代码
userID = browser.find_element(By.ID, 'userid-content')
slow_type(userID, 'myUserName')

password = browser.find_element(By.ID, 'password-content')
slow_type(password, 'myPassword')

5. 优化登录操作

用click()代替submit(),并添加随机延迟符合真实用户操作节奏:

time.sleep(random.uniform(0.5, 1.5))  # 随机延迟后点击登录
clickSubmit = browser.find_element(By.ID, 'log-in-button')
clickSubmit.click()

额外说明

即使完成以上优化,仍可能被Discover的反爬机制拦截,因为金融网站会检测IP、登录频率、操作轨迹等更多维度。作为学习项目可以尝试,但如果是长期需求,建议优先查看Discover是否提供官方API接口,避免自动化登录带来的账户安全风险。

内容的提问来源于stack exchange,提问作者Sage Herrin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:20:55