如何自动登录到正在检测我使用 selenium-stealth 登录的尝试的网站

New*_*mer 10 python selenium selenium-webdriver botdetect selenium-stealth

所以,我正在尝试编写一个脚本来登录https://us.etrade.com/e/t/user/login

我正在使用 Selenium,但它在启动时以某种方式检测到 selenium,并产生一条消息,指出服务器拥挤,当发生这种情况时,我无法登录。我也尝试过使用 unDetected-selenium 以及硒是隐形的,但两者也都被检测到。我真的需要自动化这个登录过程。我尝试过使用 python requests 但不起作用。我对任何其他允许我实现这种自动化的技术或方法持开放态度。请帮忙。

这是我的代码


from selenium import webdriver
from selenium.webdriver.common.by import By

from selenium_stealth import stealth
import time

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
# chrome_options.add_argument('--browser')
chrome_options.add_argument('--no-sandbox')
# chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
wd = webdriver.Chrome('chromedriver',chrome_options=chrome_options)

stealth(wd,
        languages=["en-US", "en"],
        vendor="Google Inc.",
        platform="Win32",
        webgl_vendor="Intel Inc.",
        renderer="Intel Iris OpenGL Engine",
        fix_hairline=True,
        )

wd.get("https://us.etrade.com/e/t/user/login")

Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 8

演示信用将帮助我们更深入地挖掘您的特定用例。

然而,使用selenium-stealth我能够很容易地绕过Selenium驱动的ChromeDriver启动的 浏览上下文的检测。

兼容代码

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.chrome.service import Service
    from selenium_stealth import stealth
    
    
    options = Options()
    options.add_argument("start-maximized")
    
    # Chrome is controlled by automated test software
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    s = Service('C:\\BrowserDrivers\\chromedriver.exe')
    driver = webdriver.Chrome(service=s, options=options)
    
    # Selenium Stealth settings
    stealth(driver,
          languages=["en-US", "en"],
          vendor="Google Inc.",
          platform="Win32",
          webgl_vendor="Intel Inc.",
          renderer="Intel Iris OpenGL Engine",
          fix_hairline=True,
      )
    
    driver.get("https://bot.sannysoft.com/")
    driver.save_screenshot('bot_sannysoft.png')
    
    Run Code Online (Sandbox Code Playgroud)
  • 截屏:

机器人_sannysoft


使用ETRADE 登录页面

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.chrome.service import Service
    from selenium_stealth import stealth
    import time
    options = Options()
    options.add_argument("start-maximized")
    
    # Chrome is controlled by automated test software
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    s = Service('C:\\BrowserDrivers\\chromedriver.exe')
    driver = webdriver.Chrome(service=s, options=options)
    
    # Selenium Stealth settings
    stealth(driver,
            languages=["en-US", "en"],
            vendor="Google Inc.",
            platform="Win32",
            webgl_vendor="Intel Inc.",
            renderer="Intel Iris OpenGL Engine",
            fix_hairline=True,
            )
    
    driver.get("https://us.etrade.com/e/t/user/login")
    driver.save_screenshot('etrade_com_login.png')
    
    Run Code Online (Sandbox Code Playgroud)
  • 截屏:

etrade_com_登录