🕷 Я занимаюсь парсингом уже где-то около года и заметил, что все парсеры у меня реализованы по одной схеме.
Весь процесс можно разбить на два этапа:
⁃ Собрать список ссылок для парсинга (например, из sitemap или строки поиска)
⁃ Обогатить данные (перейти по ссылке и сохранить все оттуда)
Часто по ссылке приходит не только базовая информация, но и кусочки данных про другие объекты. Их имеет смысл сохранять, если собрать объекты через sitemap не получилось или если вместе с ними передается какое-нибудь число, например, число подписчиков - можно будет строить тренды.
В каждом проекте я реализую функции:
⁃ Собрать список ссылок для парсинга
⁃ Дай из бд список из необогащенных ссылок
⁃ Обогатить данные по ссылке
⁃ Грамотно раскидать собранные данные по таблицам в бд
⁃ Создать новую таблицу с объектами, но уже без дублей и с дополнительными столбцами (например, скорость роста подписчиков за последний квартал)
Запускать каждый шаг очень удобно через Airflow: можно легко мониторить их продолжительность, логи и на каком шаге что упало. Сохранять в базу удобно через Dataset - сам обновит схему таблиц, если вы поменяли парсер. Рендерить JS удобно через Selenoid - не надо локально запускать браузер. Рисовать данные из бд удобно через Metabase. Все тулы опенсорсны 🔓🐣
Весь процесс можно разбить на два этапа:
⁃ Собрать список ссылок для парсинга (например, из sitemap или строки поиска)
⁃ Обогатить данные (перейти по ссылке и сохранить все оттуда)
Часто по ссылке приходит не только базовая информация, но и кусочки данных про другие объекты. Их имеет смысл сохранять, если собрать объекты через sitemap не получилось или если вместе с ними передается какое-нибудь число, например, число подписчиков - можно будет строить тренды.
В каждом проекте я реализую функции:
⁃ Собрать список ссылок для парсинга
⁃ Дай из бд список из необогащенных ссылок
⁃ Обогатить данные по ссылке
⁃ Грамотно раскидать собранные данные по таблицам в бд
⁃ Создать новую таблицу с объектами, но уже без дублей и с дополнительными столбцами (например, скорость роста подписчиков за последний квартал)
Запускать каждый шаг очень удобно через Airflow: можно легко мониторить их продолжительность, логи и на каком шаге что упало. Сохранять в базу удобно через Dataset - сам обновит схему таблиц, если вы поменяли парсер. Рендерить JS удобно через Selenoid - не надо локально запускать браузер. Рисовать данные из бд удобно через Metabase. Все тулы опенсорсны 🔓🐣