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

Создание веб-скрапера на Cheerio

Начало урока

Создание веб-скрапера на Cheerio

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

Главная идея: Веб-скрапер скачивает сырой HTML страницы и обращается с ним как с документом, к которому можно делать запросы. Cheerio разбирает этот HTML в дерево и даёт тот же API $('selector'), что вы знаете по jQuery, но на сервере и без браузера. Вы указываете на элементы, читаете их текст и атрибуты и превращаете беспорядочную страницу в аккуратные структурированные записи.
К концу вы сможете:
  • объяснить конвейер загрузить -> разобрать -> выбрать -> извлечь -> сохранить;
  • загружать HTML в Cheerio и запрашивать его CSS-селекторами;
  • перебирать повторяющиеся элементы, собирая массив записей;
  • аккуратно читать текст, атрибуты и вложенные узлы;
  • сохранять результаты в JSON-файл или таблицу базы данных;
  • скрапить вежливо -- уважать robots.txt, ограничения частоты и ошибки;
  • решать, когда настоящий API лучше скрапинга.

1. Что такое скрапинг и почему Cheerio?

Не каждый сайт предлагает удобный JSON API. Иногда единственное место, где живёт цена, заголовок или характеристика товара, -- это HTML, который отображает браузер. Скрапинг -- это практика скачивания такого HTML и программного извлечения полезных частей.

В более ранней теме Потребление сторонних API вы загружали JSON с эндпоинта -- данные приходили уже структурированными. Скрапинг -- родственный навык: данные приходят как документ, созданный для человеческих глаз, и ваша задача -- навязать ему структуру. Загрузка та же, а разбор совсем другой.

Cheerio -- это быстрая, зрелая библиотека, которая разбирает HTML в дерево узлов и предоставляет API, совместимый с jQuery. Она не выполняет JavaScript, не загружает изображения и ничего не отрисовывает -- это просто парсер плюс селекторы. Поэтому она крошечная и быстрая по сравнению с полноценным headless-браузером вроде Puppeteer. Если нужные данные присутствуют в сыром HTML, который присылает сервер, Cheerio -- правильный инструмент. Если же страница строит содержимое клиентским JavaScript после загрузки, вам понадобится инструмент на основе браузера (об этом дальше).

Аналогия. Представьте HTML-страницу как печатную газету. Браузер -- это читатель, видящий свёрстанные полосы. Cheerio -- это ножницы и указатель: они позволяют сразу перейти к "каждому заголовку в спортивном разделе" и вырезать их, игнорируя рекламу и вёрстку, которые вам не важны.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя