22 июля 2019 г. 23:48

225

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

comments powered by Disqus