Попросить LLM-агента типа Claude Code "сходи в интернет и собери мне данные" - это как играть в казино. Иногда везет, и ты получаешь то что искал. А иногда сжигаешь половину дневного лимита на двух сайтах, упираешься в антибот защиту и в итоге получаешь кашу из тегов вперемешку с куском нужного контента.
Любой, кто пробовал натравить LLM-агента на сайт, знает это чувство: даешь простую задачу - собери данные с такой-то страницы. Агент бодро рапортует, что работа кипит. Проходит минута, две, он пошел по соседним ссылкам, начал сам что-то искать, что-то быстро перебирает, и в итоге половину сайтов он не смог открыть, половина второй половины - это мусор и только крупица нужной информации.
Что именно ломается
Claude Code отлично работает с кодом, файлами, терминалом - это его стихия, за это мы все его любим. Встроенный веб-поиск тоже работает, НО в основном только для простых статичных страниц. Стоит зайти на что-то с динамическим контентом, пагинацией или антибот защитой - тут его полномочия все.
Стандартные подходы и их цена
Какие есть решения:
- curl + ручной парсинг. Технически работает, а практически - тонны тегов, атрибутов, инлайн-стилей. Все это надо чистить перед отправкой в модель. Токены сгорают и нужный контент теряется в шуме. Для JS-тяжелых страниц вообще не вариант - curl не исполняет JavaScript и мы не получим никаких данных.
- Playwright / Puppeteer. Серьезный подход, почти хакерский: headless браузер, ждем загрузку JS, вытаскиваем нужное - работает. Но это отдельный скрипт под каждый сайт. При таком сценарии агент тут уже не помощник, а просто среда выполнения. Если мы пишем на Playwright - нам агент-то вообще зачем?
- ScraperAPI, Apify и аналоги. Полноценные платформы: прокси-пулы, обход защит, structured output. Но это отдельный стек, отдельная интеграция, и от $99/мес за нормальный план. Для промышленного скрапинга это ок и то что доктор прописал. А чтобы чисто агент просто нормально открывал сайты, очевидно, избыточно.
Прослойка между агентом и вебом
Концептуально задача простая: нужна штука, которая берет URL, открывает страницу как настоящий браузер (с JS, с обходом защит), выкидывает все лишнее и отдает агенту чистый текст: markdown или JSON - что-то, с чем модель может нормально работать, экономя нам денежки на парсинге мусора.
Один из инструментов, который делает именно это - Firecrawl. Его мы и рассмотрим сегодня и его помощь в работе с Claude Code. Проект позиционируется как "The Web Data API for AI", и по существу это довольно точное описание. Он не единственный в своей нише (есть Jina Reader, есть r.jina.ai), но сейчас это один из наиболее зрелых и хайповых.
Что внутри
Принцип: даешь URL → получаешь чистый Markdown или структурированный JSON. Между "даешь" и "получаешь" Firecrawl рендерит JavaScript, обрабатывает динамический контент и чистит разметку от шума.
Проект активный и популярный - больше 110,000 звезд на гитхабе, что делает его крупнейшим опенсорс-репой в своей нише. Есть платная версия и Open Source. В чем разница?
Платная (firecrawl.dev):
- Free: 500 кредитов разово (не в месяц), 2 параллельных запроса - это примерно 500 страниц. Чисто попробовать и понять а нужно ли оно.
- Hobby: $16/мес (годовой биллинг) - 3 000 кредитов/мес, 5 параллельных запросов.
- Standard: $83/мес (годовой биллинг) - 100 000 кредитов/мес, 50 параллельных запросов.
- Growth: $333/мес - 500 000 кредитов для серьезных нагрузок и больших проектов.
- Проприетарный обходчик антибот-защиты. Для меня это главное.
- Agent-режим с моделями Spark 1 Mini/Pro, Interact для кликов и форм.
Open Source (github.com/firecrawl/firecrawl, лицензия AGPL-3.0):
- Docker, бесплатно
- Нет "fire engine" - это закрытая технология, поэтому antibot тут работать не будет.
- Нет Agent и Interact
- Для сайтов без агрессивной защиты (документация, блоги, новости) - рабочий вариант
- AGPL-3.0 - если собираетесь в коммерческий продукт, внимательно читайте лицензию.
Как подключить к Claude Code
Три способа по порядку удобства: плагин → MCP-сервер → CLI.
Восемь режимов работы
Когда нужен
Одна страница → Markdown/JSON
Конкретный URL
Batch Scrape
Пачка URL параллельно
Есть список страниц
Обход сайта по ссылкам
Нужен весь сайт или раздел
Поиск + скрапинг результатов
Найти и получить контент за один запрос
Карта URL сайта
Разведка перед crawl
Данные в JSON по схеме
Цены, вакансии, контакты
Сам выбирает инструмент
Сложная задача, неясно с чего начать
Chromium, клики, действия
Пагинация, "Загрузить ещё", формы
Для большинства задач хватает Scrape + Extract. Agent - самый мощный и самый дорогой по кредитам инструмент. Interact используем для случаев когда обычный Scrape проигрывает сайту и не может победить динамику.
Три сценария
Claude через Firecrawl Search находит новости, скрапит каждую страницу, суммаризирует. Ключевое - "сохрани в файл". Если попросить вывести в чат, контекст забьется на третьей новости.
Встроенный веб-поиск тут выдал бы заголовки без контента или завис на защищенных изданиях. Разница в том, что у Firecrawl получается открывать страницы и вытаскивать данные, тогда как дефолтный поиск у Claude Code пасует в этих задачах.
Паттерны, которые сэкономят (и не только нервы)
Всегда сохраняйте в файл, не в чат. Если скрапите больше 2-3 страниц, то пусть Claude пишет результаты в .md файлы. Потом он сам читает нужные фрагменты и контекстное окно живет дольше, ответы точнее, нет эффекта "забыл начало разговора".
firecrawl-cheatsheet.md - создайте и не пожалеете. Простая таблица "задача → инструмент":
Добавьте ссылку на файл в CLAUDE.md. Клод будет читать его перед принятием решений, из-за чего заметно растет качество .
Используйте JSON-формат вместо markdown, когда нужны конкретные поля. Markdown льет в контекст всю страницу, а Extract с JSON-схемой вытащит только нужное, что сэкономит и кредиты, и токены.
Agent как fallback. Если Scrape или Extract не справились - не копайтесь в причинах, скажите Claude попробовать через Agent - это режим "разберись сам". Медленнее, дороже, но обычно вытаскивает все что мы попросили.
А что с альтернативами?
Firecrawl, как я говорил в самом начале, не единственный инструмент в нише. Вот короткий ориентир, когда имеет смысл смотреть в другую сторону:
- Jina Reader (r.jina.ai) - дешевле и проще. Просто префиксите URL и получаете Markdown. Он хуже с защищенными сайтами и нет Agent-режима, но для блогов и документации часто хватает.
- Crawl4AI - полностью открытая библиотека, Python-first: хорош для тех, кто готов писать код и держать инфраструктуру.
- ScraperAPI, Apify - промышленный скрапинг с прокси и антибот-инфрой. Дороже, сложнее, но для регулярного большого объема данных он лучше.
Минусы и ограничения
- 500 бесплатных кредитов - это разовая акция. К сожалению. Это примерно 500 страниц - попробовать хватит, для регулярной работы конечно нет. Чисто подсадить на иглу.
- 2 параллельных запроса на бесплатном плане. Большой сайт будет обрабатываться медленно
- Self-hosted без главного козыря. "Fire engine" - проприетарная технология. Без нее защищённые сайты не работают. Если берете опенсорс учитывайте это
- Agent и Browser Interact - тоже только платная версия. Это уже не так больно, но все равно хотелось бы.
- Расход кредитов неравномерный. Scrape - ~1 кредит/страница. Agent сильно больше в зависимости от сложности. Следите за балансом
- Это не единственный инструмент. Jina Reader, Crawl4AI, другие решения существуют: Firecrawl не серебряная пуля, это один из вариантов, который сейчас работает достаточно хорошо.
- AGPL-3.0 у open-source версии. Для встраивания в проприетарный продукт читайте условия внимательно.
- Даже на платной версии, и даже в режиме Agent - все равно нет гарантии 100% результата.
Проблема "агент не умеет в веб" реальная и никуда не денется, пока сайты динамические, а модели работают с текстом. Поэтому нужна прослойка, которая конвертирует одно в другое.
Firecrawl - это один из рабочих вариантов такой прослойки: не единственный и не идеальный. Но если вы используете Claude Code и хоть иногда просите его что-то найти или собрать из веба - 15 минут на настройку Firecrawl (или аналога) окупятся быстро (особенно если open source заюзаете). А бесплатного плана хватит, чтобы понять, нужно ли вам это вообще.