Обнаружен браузер Chrome, запущенный через ChromeDriver
Я пытаюсь использовать селен хромедрайвер в Python для веб-сайта www.mouser.co.uk. Тем не менее, он обнаружен как бот с первого выстрела.
У кого-нибудь есть объяснение этому? далее код, который я использую:
options = Options()
options.add_argument("--start-maximized")
browser = webdriver.Chrome('chromedriver.exe',chrome_options=options)
wait = WebDriverWait(browser, 30)
browser.get('https://www.mouser.co.uk')
1 ответ
Я пытался получить доступ к URL https://www.mouser.co.uk/
с определенными chrome.options, но они были обнаружены и были перенаправлены на страницу " Прощение нашего прерывания".
Блок кода:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC options = Options() 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.mouser.co.uk") myElement = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='1_lnkLeftFlag']"))) driver.execute_script("arguments[0].click();", myElement)
Теперь на странице прощения Наше Прерывание вы найдете <body>
тег содержит:
- Атрибут класса
dist-GlobalHeader
- Атрибут класса
dist-PageWrap
Что является четким свидетельством того, что веб-сайт защищен поставщиком услуг управления ботами 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".
Ссылка
Вы можете найти подробное обсуждение в разделе Может ли веб-сайт определить, когда вы используете селен с хромедрайвером?
Пробовал все, что здесь предлагалось, ничего не работало. У меня работал только этот модуль:
https://github.com/ultrafunkamsterdam/undetected-chromedriver
Я использовал его, чтобы получить веб-сайт, на котором был обнаружен бот. Я пытался использовать все методы, предложенные в предыдущих ответах, но безуспешно. Использование этого модуля очень простое и описано в самом репозитории git.
Боковое примечание: модераторы несколько раз удаляли предыдущие редакции этого поста без уважительной причины ИМХО. Я надеюсь, что это правка пройдет. Удачи.