Я пробую простую программу на python Селен, используя браузер firefox. Я хочу что-то искать и получить все результаты в списке. Например, найдите текст на YouTube и напечатайте внешние ссылки и метки всех результатов.
Ниже приведен мой код. И результат печатает 1-й элемент X количество раз.
class youtube: base_url = "https://www.youtube.com/" search_textbox_xpath = "//input[@id='search']" search_button_id = "search-icon-legacy" all_results_xpath = "//ytd-video-renderer[contains(@class,'ytd-item-section-renderer')]" individual_result_href_xpath = "//a[@id='video-title']" individual_result_text_xpath = "//a[@id='video-title']/yt-formatted-string[contains(@class,'ytd-video-renderer')]" def search_youtube(self, search_text): try: b = Browser() handle = b.open_browser(self.base_url) time.sleep(8) search_textbox = handle.find_element_by_xpath(self.search_textbox_xpath) #search_textbox.clear() search_textbox.send_keys(search_text) handle.find_element_by_id(self.search_button_id).click() time.sleep(8) all_results = handle.find_elements_by_xpath(self.all_results_xpath) for each_result in all_results: print (each_result) href = each_result.find_element_by_xpath(self.individual_result_href_xpath).get_attribute('href') print(href) text = each_result.find_element_by_xpath(self.individual_result_text_xpath).text print(text) finally: b.close_browser() if __name__ == '__main__': y = youtube() y.search_youtube('upcoming animated movies 2020')
Вывод:
https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие анимационные и семейные фильмы 2020 года (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие Анимация и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие фильмы АНИМАЦИЯ И СЕМЬЯ 2020 (Трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие фильмы АНИМАЦИЯ И СЕМЬЯ 2020 (Трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие Анимация и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучший Предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие фильмы АНИМАЦИЯ И СЕМЕЙСТВО 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие фильмы АНИМАЦИЯ И СЕМЬЯ 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ The Best Предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ лучшие предстоящие анимационные и семейные фильмы 2020 (трейлер) https://www.youtube.com/watch?v=qqSyecJ0zAQ Лучшие грядущие анимационные и семейные фильмы 2020 года (трейлер)
Я вижу, что в 'each_result' указан другой идентификатор элемента. Тогда почему он печатает один и тот же 1-й результат X раз? Я открыл тот же поиск и вижу в источнике все результаты поиска.
Заранее спасибо!