Перейти к содержанию

Парсинг

Это процесс сбора данных с источника при помощи каких либо инструментов с последующей обработкой результатов.

How To

Здесь будут заметки про сам процесс парсинга и утилиты, которые позволяют его осуществлять.

Процесс

Весь процесс можно разбить на несколько этапов:

  • Собираем источники которые будем парсить
  • Обогащаем данные (переходим по ссылкам, смотрим куки и прочие штуки - сохраняем. Саму страницу сохраняем тоже.)

Важно

Скачивать страничку обязательно. Таким образом, мы:

  1. Экономим трафик
  2. Получаем базовый случай для парсера, на котором можно играться сколько влезет
  3. Избегаем бана. Веб-сервера или сами приложения умеют обнаруживать клиенты для парсинга, трекать активность и количество запросов.
  • Парсим при помощи выбраных инструментов
  • Оптимизация БД - грамотно раскидываем собранные данные
  • Если парсер работает в бекграунде то интегрируем средства аналитики или банально прикручиваем логгирование - мы же хотим знать когда наш парсер упал?

Инструменты

  • Парсить обычные HTML'ки можно через Beautiful Soup. Самый легендарный и часто используемый инструмент.
  • Сохранять данные в базу удобно через dataset - это надстройка над SQLAlchemy. Она умеет обновлять схему, если схема данных парсера изменилась.
  • Рендерить JS и тыкать кнопки в браузере (без его запуска) можно через Selenoid. Ну и парсить данные им тоже можно.
  • Рисовать данные можно при помощь Grafana или инструментов по типу Metabase
  • Запускаем через Apache Airflow, Rundeck