← Назад к блогу

LLM или CSS-селекторы для парсинга: сравнение цены и надёжности в 2026

Сравниваем три способа извлекать данные при парсинге: CSS/XPath-селекторы, LLM-извлечение и гибрид, где модель пишет селекторы. Считаем стоимость 1 000 страниц по ценам Gemini и Claude на октябрь 2026, разбираем риск выдуманных данных и объясняем, почему модель не экономит трафик прокси.

📅1 октября 2026 г.
LLM или CSS-селекторы для парсинга: сравнение цены и надёжности в 2026

Парсер на CSS-селекторах ломается, когда сайт меняет вёрстку. Парсер на LLM не ломается, но за каждую страницу выставляет счёт. В 2026 году выбор между ними перестал быть делом вкуса: цены моделей разошлись в десятки раз, а одна и та же страница может стоить 3 000 или 20 000 токенов в зависимости от того, что вы отправили в модель. Ниже — сравнение трёх подходов по деньгам, надёжности и трафику прокси, с расчётом на 1 000 и на миллион страниц.

Коротко: что выбрать

  • Селекторы (CSS/XPath) — один шаблон страниц, большие объёмы, стабильная вёрстка. Стоимость извлечения близка к нулю, но поддержка ложится на разработчика.
  • LLM-извлечение — много разных сайтов, нестабильная вёрстка, разовые задачи. Платите за токены на каждой странице и обязаны валидировать ответ.
  • Гибрид — LLM один раз пишет селекторы, дальше работают селекторы, а модель вызывается только когда проверка данных упала. Для большинства постоянных парсеров это оптимум.

Критерии сравнения

Сравниваем по пяти пунктам, которые реально влияют на итоговый счёт и на качество данных:

  1. стоимость извлечения на 1 000 страниц;
  2. поведение при смене вёрстки;
  3. точность и риск выдуманных значений;
  4. скорость и задержка;
  5. расход трафика прокси — он, как увидите, от выбора метода почти не зависит.

Сколько стоит LLM-извлечение: считаем по прайсам на октябрь 2026

Официальные цены за миллион токенов (вход / выход) на стандартном тарифе:

  • Gemini 2.5 Flash-Lite — $0,10 / $0,40;
  • Gemini 3.1 Flash-Lite — $0,25 / $1,50;
  • Claude Haiku 4.5 — $1 / $5;
  • Gemini 3.5 Flash — $1,50 / $9.

У Google и Anthropic есть Batch API со скидкой 50% на вход и выход — для парсинга, где ответ не нужен мгновенно, это первый рычаг экономии.

Главная переменная — не модель, а то, что вы в неё отправляете

Сырая HTML-страница при передаче в модель обычно занимает 10–40 тысяч токенов. Cloudflare, запуская функцию Markdown for Agents, привёл пример: одна и та же запись блога весит 16 180 токенов в HTML и 3 150 токенов в Markdown — минус 80%. Другие замеры по новостям, документации и карточкам товаров дают сокращение от 67 до 94%.

Для расчёта возьмём допущения: сырая страница — 20 000 токенов, очищенная до Markdown — 3 000, плюс 500 токенов на инструкцию и схему, на выходе 300 токенов JSON. На 1 000 страниц получаем:

МодельСырой HTML (20,5 млн вход)Markdown (3,5 млн вход)
Gemini 2.5 Flash-Lite≈ $2,17≈ $0,47
Gemini 3.1 Flash-Lite≈ $5,58≈ $1,33
Claude Haiku 4.5≈ $22,00≈ $5,00
Gemini 3.5 Flash≈ $33,45≈ $7,95

Разброс — в 70 раз между худшим и лучшим вариантом при одинаковом результате. Две трети этой разницы даёт очистка входа, а не выбор модели. На миллионе страниц в месяц это либо около $470, либо больше $33 000.

Ещё одна деталь: модели Claude начиная с версии 4.7 используют новый токенизатор, который, по данным Anthropic, даёт примерно на 30% больше токенов на тот же текст. Сравнивая счета разных поколений моделей, учитывайте это — Haiku 4.5 работает на старом токенизаторе.

Селекторы: почти бесплатно, пока сайт не поменялся

Выполнение CSS- или XPath-селектора на уже скачанной странице стоит долю миллисекунды процессора. В руководстве ScrapingBee оценка такая: на стабильной вёрстке обычный селектор примерно в 10 раз дешевле и быстрее LLM-извлечения. На практике разница ещё больше, потому что у селектора нет сетевого запроса к API модели.

Цена селекторов — в поддержке:

  • сайт переименовал класс или обернул блок в новый div — парсер молча отдаёт пустые поля;
  • A/B-тесты показывают разные шаблоны разным посетителям, и часть страниц не парсится;
  • на 50 разных сайтах вы поддерживаете 50 наборов селекторов.

Самый опасный сценарий — не падение, а тихая порча данных: селектор цепляет соседний элемент, и в базу неделями пишется старая цена вместо текущей.

LLM: устойчив к вёрстке, но умеет выдумывать

Модели не нужен точный путь к элементу — она ищет «цену» по смыслу. Это снимает проблему переименованных классов и разных шаблонов. Но появляются три типовых сбоя, которые описывают все, кто запускал такие парсеры в продакшене:

  • выдуманные значения — модель «угадывает» цену или артикул, которых на странице нет;
  • пропущенные поля — часть данных не извлечена;
  • дрейф структуры — строка вместо числа, другое имя ключа.

Защита обязательна: строгая схема ответа, валидация (например, Pydantic), temperature = 0 и повтор при ошибке. Ноль температуры уменьшает разброс, но не убирает галлюцинации полностью. Для цен и остатков разумно добавлять проверку «значение действительно встречается в тексте страницы».

Задержка тоже выше: к времени загрузки страницы через прокси прибавляется ответ модели — от долей секунды до нескольких секунд. Для мониторинга раз в сутки это неважно, для отслеживания дропов — критично.

Гибрид: LLM пишет селекторы, а не извлекает данные

Третий путь прямо поддерживается популярными библиотеками. В Crawl4AI есть функция генерации схемы: модель один раз смотрит на образцы HTML и возвращает набор CSS/XPath-селекторов, после чего извлечение идёт без вызовов LLM. В документации подчёркивается, что это разовая стоимость, а схему можно переиспользовать без ограничений; при нескольких образцах модель часто выбирает более устойчивые селекторы по атрибутам вместо хрупких позиционных вроде nth-child.

Рабочая схема гибрида:

  1. LLM генерирует селекторы по 3–5 образцам страниц одного шаблона.
  2. Парсер работает на селекторах, каждую запись проверяет валидатор: поля на месте, типы верные, цена в разумном диапазоне.
  3. Если доля невалидных записей превысила порог (скажем, 2–5%), страница уходит в LLM-извлечение, а схема — на перегенерацию.
  4. Новая схема прогоняется на контрольной выборке и только потом заменяет старую.

Так вы платите за модель только в моменты смены вёрстки, а не за каждую из миллиона страниц.

Сводная таблица

КритерийСелекторыLLM-извлечениеГибрид
Стоимость извлеченияоколо нуля$0,5–33 на 1 000 стр.около нуля + разовые вызовы
Смена вёрсткиломается, часто молчаобычно переживаетчинится автоматически
Риск выдуманных данныхнет (но есть «не тот элемент»)есть, нужна валидацияминимальный
Скоростьмаксимальная+ ответ модели на каждой страницекак у селекторов
Много разных сайтовдорого в поддержкесильная сторонахорошо, схема на каждый шаблон
Трафик проксиодинаковый — модель не уменьшает скачанные байты

Про прокси: LLM не экономит трафик

Частая ошибка в расчётах — считать, что «умный» парсер дешевле в сети. Нет: преобразование HTML в Markdown происходит после скачивания, поэтому через прокси проходит полная страница при любом методе извлечения. Исключение — сайты, где владелец сам включил отдачу Markdown по заголовку Accept: text/markdown (как в функции Cloudflare), но это решение сайта, а не ваше.

Для масштаба: при весе HTML 200 КБ без картинок 1 000 страниц — это около 0,2 ГБ, или примерно $0,54 на резидентных прокси по $2,70 за ГБ. Сравните с таблицей выше: при отправке сырого HTML в Claude Haiku 4.5 счёт за модель окажется в 40 раз больше счёта за прокси, а при Markdown и Flash-Lite они сопоставимы. Если вы рендерите страницы headless-браузером, трафик вырастет в разы — замеры есть в нашем сравнении расхода трафика Playwright, Puppeteer и requests на 1 000 страниц.

Что действительно влияет на трафик при любом методе:

  • не качать картинки, шрифты и аналитику, если они не нужны;
  • искать внутренний JSON API вместо HTML;
  • не делать лишних повторов: каждый бан и ретрай — это оплаченные байты. Подробнее о том, почему цена за ГБ обманчива, — в разборе реальной стоимости успешной записи.

Для простых каталогов без жёсткой антибот-защиты хватает датацентровых прокси по $1,50 за ГБ; резидентные нужны там, где IP хостинга режут на входе.

Рекомендации по сценариям

  • Мониторинг цен одного-трёх маркетплейсов, сотни тысяч карточек. Гибрид или чистые селекторы с валидатором. LLM подключать только для перегенерации схемы.
  • Сбор данных с сотен разнородных сайтов (лиды, вакансии, контакты). LLM-извлечение на Markdown через дешёвую модель в batch-режиме. Без строгой схемы и валидации не запускать.
  • Разовое исследование на несколько тысяч страниц. LLM: за единицы долларов вы экономите дни на написании селекторов.
  • Данные, где ошибка стоит денег (цены для репрайсинга, остатки). Селекторы или гибрид плюс сверка значения с исходным текстом страницы.
  • RAG и базы знаний. Здесь нужна не структура, а чистый текст: конвертация в Markdown без извлечения полей, модель — только на этапе ответа.

Вывод

LLM-извлечение не заменило селекторы, а сместило точку выбора. Дешевле всего — гибрид: модель пишет и чинит селекторы, а не читает каждую страницу. Если без модели на каждой странице не обойтись, сначала очищайте вход до Markdown и используйте batch: эти два шага сокращают счёт в 5–10 раз до того, как вы начнёте выбирать модель. И помните, что прокси-трафик от метода извлечения не зависит: экономить его нужно на том, что вы скачиваете, а не на том, как разбираете.