У меня была та же проблема, что и у вас, но я нашел решение, которое отлично решает мою проблему.
Возможно, ваша программа дает сбой, потому что вы обнаружены как робот, использующий селен. Итак, вот способ решить эту проблему или скрыть свою личность (window.navigator.webdriver) с помощью JavaScript:
С CDP (Chrome Devtools-Protocol) вы запускаете код до того, как фрейм загружается JS-файлом (детектором). Поэтому используйте эти коды для удаления свойства True веб-драйвера:
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
ключевые коды:
from selenium.webdriver import Chrome
driver = Chrome('D://chromedriver.exe')
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get('http://pythonlearner.com')
Однако, если вы обновите свой Chrome до 88 прямо сейчас. Метод, упомянутый выше, будет бесполезен. К счастью, у нас все еще есть решение (добавьте этот код)
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
Эти коды должны помочь вам передать файл JS, чтобы вы могли получить данные. По крайней мере, я успешно запускаю свою программу.
person
Curry_N
schedule
28.01.2021