【问题标题】:How does this website detect remote control with selenium and chromedriver?这个网站如何检测带有 selenium 和 chromedriver 的远程控制?
【发布时间】:2018-03-28 18:00:53
【问题描述】:

我正在尝试使用 selenium 和 chromedriver 从 Discover 网站筛选我自己的信用卡信息。作为响应,它返回错误:

目前无法访问您的帐户。

过时的浏览器会使您的计算机面临安全风险。要得到 Discover.com 上的最佳体验,您可能需要更新您的 浏览器到最新版本,然后重试。

有趣的是,如果我编写一个脚本来打开一个带头的浏览器并输入一些随机的帐户和密码,它就可以正常工作。但是如果脚本首先接触网页然后我输入,我会收到上述错误消息。有效的脚本是:

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.execute_script('window.location.href = "https://portal.discover.com/customersvcs/universalLogin/ac_main";')

如果我将这些行附加到脚本并在睡眠结束后键入,则会失败:

time.sleep(5)
driver.find_element_by_id('userid-content').click()

我尝试了其他方法将数据输入页面,例如 send_keys 和执行 Javascript 来修改页面,它们都以同样的方式失败。

网站如何检测遥控器?有没有办法绕过它?

【问题讨论】:

标签: selenium webdriver selenium-chromedriver google-chrome-headless


【解决方案1】:

我已经尝试过您的概念和代码块,并且发现portal.discover.com 能够检测到自动登录

  • 一方面是填写用户ID密码字段,甚至点击提交按钮仍然是可以实现的。这是相关的代码块:

     import time
     from selenium import webdriver
    
     driver = webdriver.Chrome()
     driver.execute_script('window.location.href = "https://portal.discover.com/customersvcs/universalLogin/ac_main";')
     time.sleep(5)
     driver.find_element_by_css_selector("input#userid-content").send_keys("Harold")
     driver.find_element_by_css_selector("input#password-content").send_keys("Harold")
     # driver.find_element_by_css_selector("form#login-form-content input#log-in-button").click()
    
  • 已填满用户 ID密码 字段的快照:

  • 但是你点击提交按钮,loginForm是通过一个JavaScript函数验证validateForm(this); 在 onsubmit 事件中调用。

  • 令人惊讶的是,即使在 用户凭据 得到验证之前,网站似乎就已经检测到 自动登录过程 并发回:

      Your account cannot currently be accessed.
      Outdated browsers can expose your computer to security risks. To get the best experience on Discover.com, you may need to update your browser to the latest version and try again.
    
     For questions, please contact us at 1-800-347-7769. We're always available 24 hours a day, 7 days a week.
    
  • 错误快照:


参考

您可以在以下位置找到一些详细的讨论:

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2021-05-18
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2018-12-23
    • 2017-01-16
    • 2020-01-10
    相关资源
    最近更新 更多