Я использую сканер на основе Webdriver для сбора информации с китайского новостного сайта ( Toutiao ). С 2020 года ФРС. 16 я обнаружил, что сайт не отвечает ни на какие данные chrome, управляемые программой webdriver, но chrome начал нормально работать вручную (как показано на рисунке ниже).
Левая сторона - chrome запускается вручную, правая сторона chrome управляется веб-драйвером.
Два цвета работают на одном IP, и я определил один и тот же Пользователь-агент для двоих chrome. Кроме того, я использую следующие коды (из DebanjanB ) для удаления «navigator.webdriver» (как показано на рисунке выше, код выполнен успешно):
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'./chromedriver')
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
Summery, тот же IP , User-agent и "navigator.webdriver" удалены. Почему веб-сайт все еще обнаруживает, что мой chrome контролируется веб-драйвером?
ОБНОВЛЕНИЕ
Сайт получает контент через URL-адрес. Если я копирую и получаю доступ к URL-адресу (с зашифрованными параметрами) с ручного запуска chrome на управляемый веб-драйвером chrome, сервер отправит соответствующую информацию на веб-драйвер.
Итак, веб-сайт определенно обнаружит веб-драйвер при генерации URL и его зашифрованные параметры.
ОБНОВЛЕНИЕ 2
Дискуссия " Может ли веб-сайт определить, когда вы используете селен с хроматографом? " не решает проблему, пожалуйста примечание!