Python Selenium Webdriver: невозможно извлечь данные для всех скрытых элементов, используя "textContent" - PullRequest
0 голосов
/ 15 марта 2019

Я хочу собрать данные из Netflix, чтобы получить следующую информацию: 1. Название шоу 2. Сезон 3. Название эпизода для каждого сезона 4.URL для каждого эпизода 5. Продолжительность каждого шоу.Версия Selenium: 3.141.0 Версия Python: 3.6.6, с использованием Chrome Webdriver.

Инструмент может войти в систему, выполнить поиск определенного шоу и щелкнуть вкладку «Эпизоды», как показано ниже: Снимок экранапримеры эпизодов для шоу

HTML-элементы Подробности для каждого эпизода следующие:

div class="slider-item slider-item-0" 
div class="slider-item slider-item-1"
div class="slider-item slider-item-2"
div class="slider-item slider-item-3"
div class="slider-item slider-item-"
div class="slider-item slider-item-"
div class="slider-item slider-item-"
div class="slider-item slider-item-"

После 4-го элемента другие элементы скрыты с главного экрана

Чтобы найти элементы, я использую приведенный ниже код driver.find_elements_by_xpath ("// div [@ class = 'episodeTitle'] // p [@class = 'ellipsized']"). Это даетсписок названий эпизодов для каждого шоу.

Я знаю, что для поиска скрытых элементов мы можем использовать print demo_div.get_attribute ('innerHTML') driver.execute_script("return arguments[0].innerHTML", demo_div)

print demo_div.get_attribute ('textContent') driver.execute_script("return arguments[0].textContent", demo_div) по ссылке ниже: https://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/ ПРОБЛЕМА: Каждый раз, когда пропускаются детали последних двух или более эпизодов.Я использовал оба вышеупомянутых метода, чтобы получить скрытые элементы, но не повезло. Кроме того, я использовал веб-драйвер неявного и явного времени ожидания, но некоторые эпизоды пропадают.Фрагмент кода, чтобы получить имя эпизода:

e8= driver.find_elements_by_xpath("//div[@class='episodeTitle']//p[@class ='ellipsized']")

Цените помощь.

1 Ответ

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

Эти div загружаются динамически при нажатии стрелки.

  1. Вы должны извлечь список видимых элементов
  2. Затем нажмите кнопку со стрелкой и дождитесь замены списка или загрузите
  3. Извлеките новый список
...