Парсер еды и ингредиентов

Основное
Цели
Решение
Результат

Худеть легко, если знать что есть

Этот парсер, используя встроенную html-карту сайта проходит по всем имеющимся ссылкам в данной карте ( предварительно собрав их в отдельный JSON файл для удобства)

После, читая созданный JSON файл, парсер индивидуально проходит по каждой странице, собирая необходимые данные.

Результаты сохраняются в виде JSON и CSV файлов, отдельно для каждой категории.

Цели

Собрать все данные с сайта об имеющихся продуктах

Сохранять следующую информацию о продуктах:

  • Название

  • Калорийность

  • Белки

  • Жиры

  • Углеводы

Решение

Первый этап. Парсинг HTML-карты

В этом этапе, найденная мною HTML-карта, парсится таким образом, что все найденные ссылки в ней это категории еды.

Все найденные категории сохраняются в JSON файл, allCategories.json в виде словаря, где ключ -это название категории, а значение - это ссылка.

Второй этап. Парсинг категорий

Во-втором этапе происходит парсинг всех категорий и поиск карточек продуктов и сохранение необходимых данных.

При парсинге категории получаются три файла:

  • имя_категории.html

  • имя_категории.csv

  • имя_категории.json

Зачем сохранять HTML страницу категории?

Для снижения нагрузки на целевой сайт. И для возможности отладки парсера.

Почему сохранять результат в 2-х форматах?

Я сохраняю файлы в JSON, ибо с ними проще работать в Python. А файлы формата CSV или XLS делаются для заказчиков и для других анализаторских программ.

Результат

Имеем парсер, который может за 10 секунд спарсить все данные о категориях и рецептах на сайте.

Исходники можно посмотреть тут

Репозиторий

Или скачать сразу архив со скриптом

Архив

Дополнительные материалы


сердце 0
3 соединённые точки 0