# cheerio

Правило задаёт практики для cheerio в Node.js: структура скрейперов, выбор селекторов, очистка данных и тесты.

- правило · `type=rule` · Cursor · ★ 3580
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/cheerio.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/cheerio

## Что делает

Правило применяется к файлам `**/*.{js,jsx}` и задаёт структуру для скрейперов на Node.js. Оно разделяет HTTP-запросы, разбор HTML и сохранение данных, советует использовать `async/await`, точные селекторы и проверку существования элементов перед извлечением. Для текста нужен `.text().trim()`, для атрибутов — `.attr()`.

Для больших документов правило учитывает память `cheerio.load()`, а для очередей, повторных запросов и ограничения частоты предлагает `Crawlee` с `CheerioCrawler`. Логику разбора следует проверять на моковом HTML через Jest. `cheerio` не выполняет JavaScript и не рендерит CSS, поэтому динамический контент потребует `Puppeteer` или `Playwright`. Для скрейпинга также нужно соблюдать `robots.txt`.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/cheerio.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/cheerio.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/cheerio.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/cheerio.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/cheerio.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/cheerio.mdc

## Когда брать
- разделить запросы, разбор HTML и сохранение данных
- выбрать узкие селекторы для нужного блока страницы
- очистить извлечённый текст от пробелов
- обработать отсутствующие элементы и атрибуты
- протестировать парсер на моковом HTML

## Примеры запросов агенту
- Настрой разбор товаров через `cheerio`: используй scoped-селекторы, `.text().trim()` и сохрани результат в `products.json`.
- Раздели скрейпер на получение HTML, парсинг и запись данных, используя `async/await` и обработку ошибок.
- Напиши Jest-тест для `parser.test.js`, который проверяет найденные и отсутствующие элементы в HTML.

## Похожие
- [beautifulsoup-parsing](https://affpapa.org/nevibecode/skills/beautifulsoup-parsing.md) — скилл · 877 установок
- [chrome-devtools](https://affpapa.org/nevibecode/skills/mrgoonie-chrome-devtools.md) — скилл · 737 установок
- [wechat-article-extractor](https://affpapa.org/nevibecode/skills/wechat-article-extractor.md) — скилл · 3900 установок
- [web-access-claude-skill](https://affpapa.org/nevibecode/skills/web-access-claude-skill.md) — скилл · 965 установок
- [firecrawl-build-scrape](https://affpapa.org/nevibecode/skills/firecrawl-build-scrape.md) — скилл · 61700 установок
- [browsing-with-playwright](https://affpapa.org/nevibecode/skills/browsing-with-playwright.md) — скилл · 1700 установок

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 240 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
