Безголовый Chrome источник страницы отличается от браузера - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь добыть сайт с использованием селена в python с помощью хроматического драйвера. Элемент, который я ищу, отображается, и я могу взаимодействовать с ним, когда использую драйвер chrome без опции без заголовка. Когда я использую опцию без головы, элемент больше не присутствует. Может кто-то указать мне правильное направление, чтобы решить эту проблему? Вот код:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options=Options()
chrome_options.add_argument('--mute-audio')
chrome_options.add_argument('--headless')

driver=webdriver.Chrome(executable_path=chromedriver_path,options=chrome_options)

driver.get("https://www.youtube.com/user/PaymoneyWubby/about")
el = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH,"/html/body/ytd-app/div/ytd-page-manager/ytd-browse/div[3]/ytd-c4-tabbed-header-renderer/app-header-layout/div/app-header/div[2]/div[2]/div/div[1]/div/div[1]/yt-formatted-string"))
)

1 Ответ

0 голосов
/ 07 февраля 2020

У меня нет ответа на ваш вопрос (я подозреваю, что Youtube знает, что браузер находится в автономном режиме и не любит веб-скребки, особенно те, которые используют браузер своей компании - посмотрите, если вы получите другой результат используя Firefox), но у меня есть предложение помочь вам очистить ваш xpath:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options=Options()
chrome_options.add_argument('--mute-audio')
chrome_options.add_argument('--headless')

driver=webdriver.Chrome(executable_path=chromedriver_path,options=chrome_options)

driver.get("https://www.youtube.com/user/PaymoneyWubby/about")
el = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH,"//yt-formatted-string[@id='subscriber-count']"))
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...