DeepSeek V4: как я спарсил 200 сайтов без потери контекста
Задача
Нужно было собрать данные о ценах на услуги с 200 сайтов конкурентов. У каждого сайта — своя структура, свои селекторы, свои форматы данных. Обычный парсер ломался на 5-10 сайте и требовал ручной настройки. Решил попробовать DeepSeek V4 с агентом, который сам адаптируется к разметке.
Решение
Запустил агент на DeepSeek V4 Flash, который последовательно:
- Заходит на сайт, определяет страницу с ценами
- Анализирует DOM и находит релевантные селекторы
- Извлекает данные в структурированном виде
- Переходит к следующему сайту, сохраняя контекст предыдущих
Использовал промпт с пошаговой инструкцией и схемой |DSML| для вызова инструментов (Playwright + cheerio).
V4 Flash → Playwright MCP-сервер → адаптивные селекторы. Агент сам принимает решение, какой селектор использовать, глядя на структуру страницы. Никакого жёстко прописанного CSS.
Результат
- Обработано сайтов: 200 из 200 (100% — раньше вылетало на 5-10)
- Время: 2 часа 40 минут автономной работы
- Ручных вмешательств: 0 — агент прошёл все 200 сам
- KV-кеш к концу: ~15 ГБ — без деградации качества
- Железо: 1×RTX 4090 (24 ГБ VRAM) — Flash версия
«На 150-м сайте агент всё ещё помнил, что мы ищем 'тарифы для бизнеса', и не путал их с потребительскими ценами. С предыдущими моделями к этому моменту он бы уже галлюцинировал.»
Ошибки
- Не сразу включил Think High. На Non-think агент иногда выбирал не те селекторы. Think High добавил ~30% ко времени, но точность выросла до 98%
- Забыл про rate limiting. Агент ломился на сайты без задержки — получил пару 429 от Cloudflare-защищённых. Добавил паузу 3-5 сек между запросами
- Игнорировал |DSML|. Сначала пытался использовать старый JSON-формат — ошибки экранирования. Перешёл на |DSML| — проблема ушла полностью
Вывод
Главное открытие: архитектура действительно решает. Не «модель стала умнее», а «модель перестала тупить со временем». Для задач, где агент должен пройти длинную цепочку шагов без потери контекста, V4 Flash — лучшее, что сейчас есть в open-source.