Парсинг фронтенд-сайтов с богатым интерфейсом
Как парсить фронтенд-сайты, которые загружают контент с помощью JavaScript?
Термин "фронтенд-сайты с богатым интерфейсом" относится к сайтам, где необходимые данные загружаются при выполнении некоторого действия на основе JavaScript, что делает поведение сайта динамическим. Для парсинга таких сайтов нам понадобятся следующие вещи:
- Симуляция точных событий браузера
- Выполнение действий, которые загружают необходимый контент
Решение
В этом случае нам на помощь приходит Selenium. Пакет Selenium для Python может работать в совместной работе с Headless и другими браузерами, чтобы решить эту проблему. Например, в следующем примере мы создадим бота, используя Selenium и Chrome Headless, и с его помощью мы сможем извлекать информацию с любых страниц.
Создание бота с использованием Selenium
Мы будем использовать Selenium вместе с Chrome Headless.
Установка Headless
Ссылка на GitHub с инструкцией по установке: https://gist.github.com/abdulmoizeng/e1a61923a1928baeb54175f28e054adb
Сценарий
Нашему боту нужно выполнить следующие задачи:
- Войти в систему на GitHub
- Посетить репозиторий автора
- Поставить ему звезду
- Выйти из системы
Демонстрационный кодСсылка на GitHub: https://github.com/abdulmoizeng/crawlers-demo/tree/master/headless_bot
Настройте свои учетные данные GitHub в файле "creds.py", чтобы сделать его функциональным.
Заключение
Мы можем осуществлять парсинг данных с динамических и богатых веб-сайтов с помощью безголового режима, в основном то, что можно сделать в браузере, можно сделать и с помощью него. Это идеальный инструмент для имитации взаимодействия пользователя с браузером. Пожалуйста, оставьте свои комментарии и отзывы.