硒铬被检测到

时间:2020-07-18 20:54:39

标签: python selenium google-chrome selenium-chromedriver recaptcha

我正在尝试为https://www.phonehouse.nl/verlengchecker做一个机器人。但是当我使用Chrome时,它会被检测到。当我使用Firefox时,它只会打开页面,不会执行任何操作。我在Arch Linux和Windows上尝试过,结果是一样的。

from selenium import webdriver
from time import sleep

capabilities = {
  'browserName': 'chrome',
  'chromeOptions':  {
    'useAutomationExtension': False,
    'forceDevToolsScreenshot': True,
    'args': ['--start-maximized', '--disable-infobars']
  }
}    
driver = webdriver.Chrome(capabilities=capabilities)
def control(provider, number, day, month, year, post, email, street):
    
    driver.get("https://www.phonehouse.nl/verlengchecker")
    sleep(1)

    driver.find_element_by_xpath("//span[@id='businessSelectBoxIt']").send_keys(provider) #provider
    driver.find_element_by_xpath("//input[@name='msisdn']").send_keys(number) #number

2 个答案:

答案 0 :(得分:1)

您的分析方向正确。 Selenium驱动的ChromeDriver启动的 浏览上下文可以很容易地被检测到。

深潜

如果您访问DOM Tree,则会发现recaptcha的存在。

invisible_recaptcha


结论

Recaptcha可以轻松检测到WebDriver启动的浏览上下文

您可以在How does recaptcha 3 know I'm using selenium/chromedriver?

中找到详细的讨论

不过,有一些通用的方法可以避免检测,您可以在How to bypass Google captcha with Selenium and Python?中找到详细的讨论


Outro

您可以在以下位置找到相关的详细讨论:

答案 1 :(得分:0)

好吧,“提供者”不是输入,因此您不能使用send_keys

但是您可以使用此数字:

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
def control(number):
    driver.get("https://www.phonehouse.nl/verlengchecker")
    sleep(1)
    driver.find_element_by_xpath('//*[@id="msisdn"]').send_keys(number)
control("000")