Python Selenium скриншоты
Пример довольно глупый и забавный , но тут продемонстрируем как использовать Selenium WebDriver , чтобы наш скрипт прошелся по всем статьям блога и сделал скриншоты. Selenium 2.0 (Selenium Web Driver)- это инструмент для автоматизации действий веб-браузера Логично , что мы его будем использовать для автоматизации наших действий
Создаем виртуальное окружение.
pip install selenium
Далее нам нужно скачать chromedriver с этой страницы. Так как у меня windows , то я скачиваю для windows и указываю путь к нему в своем скрипте.
После этого переходим на главную страницу.Так как у нас нет постраничной навигации, то мы просто получим ссылки на посты с этой страницы.
Вначале получим все элементы h3 с классом card-ttile . Для этого будем использовать find_elements_by_class_name('card-title'). Можно было бы сразу получить используя xpath и метод find_elements_by_xpath("//h3[@class='card_title']/a/@href") , но мы не ищем легких и элегантных решений
Так как тег a является дочерним элементом h3, то его мы можем получить с помощью find_element_by_tag_name , но при этом поиск , чтобы проходил внутри элемента h3. Ну а содержимое атрибута href мы получим с помощью метода get_attribute
В коде это будет выглядеть так
for h3_title in driver.find_elements_by_class_name('card-title'):
link = h3_ttile.find_element_by_tag_name ('a').get_attribute('href')
А чтобы сделать скриншот используем метод save_screenshot. Только нужно передать этому методу путь , где будет сохраняться наш скриншот
Полный код скрипта
Заключение
С помощью selenium можно без особого труда эмулировать действия пользователей. Его часто используют при написании тестов и когда необходимо получить динамический контент , который формируется javascript и которую нельзя получить при парсинге с помощью requests или scrapy