Парсинг¶
Это процесс сбора данных с источника при помощи каких либо инструментов с последующей обработкой результатов.
How To¶
Здесь будут заметки про сам процесс парсинга и утилиты, которые позволяют его осуществлять.
Процесс¶
Весь процесс можно разбить на несколько этапов:
- Собираем источники которые будем парсить
- Обогащаем данные (переходим по ссылкам, смотрим куки и прочие штуки - сохраняем. Саму страницу сохраняем тоже.)
Важно
Скачивать страничку обязательно. Таким образом, мы:
- Экономим трафик
- Получаем базовый случай для парсера, на котором можно играться сколько влезет
- Избегаем бана. Веб-сервера или сами приложения умеют обнаруживать клиенты для парсинга, трекать активность и количество запросов.
- Парсим при помощи выбраных инструментов
- Оптимизация БД - грамотно раскидываем собранные данные
- Если парсер работает в бекграунде то интегрируем средства аналитики или банально прикручиваем логгирование - мы же хотим знать когда наш парсер упал?
Инструменты¶
- Парсить обычные HTML'ки можно через Beautiful Soup. Самый легендарный и часто используемый инструмент.
- Сохранять данные в базу удобно через dataset - это надстройка над SQLAlchemy. Она умеет обновлять схему, если схема данных парсера изменилась.
- Рендерить JS и тыкать кнопки в браузере (без его запуска) можно через Selenoid. Ну и парсить данные им тоже можно.
- Рисовать данные можно при помощь Grafana или инструментов по типу Metabase
- Запускаем через Apache Airflow, Rundeck