Веб-страница обнаруживает веб-драйвер Selenium с помощью Chromedriver в качестве бота - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь очистить https://www.controller.com/ с помощью python, и, поскольку страница обнаружила бота, использующего pandas.get_html, и запросы с использованием пользовательских агентов и вращающегося прокси-сервера, я прибег к использованию селена webdriver.Тем не менее, это также обнаруживается как бот со следующим сообщением.Кто-нибудь может объяснить, как я могу пройти через это?Это может произойти по нескольким причинам: вы опытный пользователь, перемещающийся по этому сайту со сверхчеловеческой скоростью.Вы отключили JavaScript в своем веб-браузере.Сторонний плагин для браузера, такой как Ghostery или NoScript, запрещает запуск JavaScript.Дополнительная информация доступна в этой статье поддержки.Чтобы запросить разблокировку, пожалуйста, заполните форму ниже, и мы рассмотрим ее как можно скорее "

Вот мой код:

from selenium import webdriver
import requests
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
options = webdriver.ChromeOptions()
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
#options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.controller.com/')
driver.implicitly_wait(30)

1 Ответ

0 голосов
/ 04 марта 2019

Вы упомянули о pandas.get_html только в своем вопросе и options.add_argument('headless') только в своем коде, поэтому не уверены, что вы их реализуете.Однако, извлекая минимальный код из вашей попытки кода следующим образом:

  • Блок кода:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get('https://www.controller.com/')
    print(driver.title)
    

Я столкнулся с той же проблемой.

  • Браузер Snashot:

controller_com

Когда я проверял HTML DOM , наблюдалосьчто веб-сайт ссылается на дистил_реферрера на window.onbeforeunload следующим образом:

<script type="text/javascript" id="">
    window.onbeforeunload=function(a){"undefined"!==typeof sessionStorage&&sessionStorage.removeItem("distil_referrer")};
</script>

Снимок:

onbeforeunload

Это четкое указание на то, что сайт защищен Bot Management поставщиком услуг Distil Networks и навигацией по ChromeDriver обнаруживается и впоследствии блокируется .


Distil

Согласно статье Там действительно что-то есть в Distil.it ... :

Distil защищает сайты от автоматических ботов, выполняющих очистку контента, наблюдая за поведением сайтов и выявляя закономерности, свойственные скребкам.Когда Distil идентифицирует вредоносного бота на одном сайте, он создает черный профиль поведения, который развертывается для всех его клиентов.Что-то вроде брандмауэра бота, Distil обнаруживает шаблоны и реагирует.

Далее,

"One pattern with **Selenium** was automating the theft of Web content", сказал генеральный директор Distil Рами Эссаид в интервью на прошлой неделе."Even though they can create new bots, we figured out a way to identify Selenium the a tool they're using, so we're blocking Selenium no matter how many times they iterate on that bot. We're doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious".


Ссылка

Вы можете найти несколько подробных обсуждений в:

...