Кодинг-агент умеет писать код, запускать команды и читать файлы. Но у него нет браузера — и это ломает любую задачу, где данные лежат на веб-странице, в API или в разнородных файлах. Подключаем Playwright MCP — и агент получает браузер как инструмент: открывает страницы, читает структуру, кликает по пагинации и возвращает результат текстом. Дальше — парсинг HTML, трансформации JSON/CSV и выгрузка в файл. Разберём на конкретных задачах, где агент силён, а где быстрее написать скрипт самому.
Simon Willison в июле 2025 года поставил эксперимент: собирает расписание конференции Open Sauce 2025 — три дня, сотни сессий — целиком через агента прямо с телефона. Промпт был коротким:
“Install playwright and use it to visit https://opensauce.com/agenda/ and grab the full details of all three day schedules from the tabs — Friday and Saturday and Sunday — then save… in as much detail as possible in a JSON file and submit that as a PR”
«Установи playwright, зайди на opensauce.com/agenda/ и собери все детали расписаний за три дня со вкладок — пятницу, субботу и воскресенье — сохрани как можно подробнее в JSON-файл и отправь его как пул-реквест.»
Codex работал автономно 13 минут и выдал schedule.json на 63 КБ. Потом Willison поправил даты одним промптом, а следующий промпт обрезал JSON до 94 КБ — без потери данных. Никакого ручного парсинга: агент сам разобрал структуру страницы, извлёк данные и упаковал их в формат.
Этот кейс показывает рабочий паттерн: промпт → браузер → парсинг → нормализация → файл. Ниже — как его воспроизвести на своих задачах.
Какие задачи отдавать агенту для обработки данных
Прежде чем подключать инструменты, стоит разделить задачи на две категории: те, где агент экономит время, и те, где он его тратит.
| Задача | Агент Helpful? | Почему |
|---|---|---|
| Собрать данные с 5–20 страниц по шаблону | ✅ Да | Агент сам находит структуру, обрабатывает пагинацию, учитывает ошибки |
| Парсинг JSON-файла и приведение к единому формату | ✅ Да | Одна команда: «прочитай, нормализуй, сохрани в CSV» — без написания скрипта |
| Извлечение данных с сайта за логином (личный кабинет, аналитика) | ✅ Да | Playwright MCP работает с cookies и авторизацией |
| Парсинг 10 000+ страниц | ⚠️ Осторожно | Контекст переполнится; быстрее скрипт на Python, агент — для написания этого скрипта |
| Парсинг стабильного API с пагинацией | ⚠️ Осторожно | Агент напишет скрипт лучше, чем будет ходить по страницам сам |
| Работа с капчей / Cloudflare | ❌ Нет | Ни Playwright MCP, ни другой браузерный инструмент капчу не обходит |
| E2E-валидация каждой фичи сайта | ❌ Нет | Медленный и «блуждающий» — см. ограничения Playwright MCP |
Правило: агент силён в разведке (понять структуру, найти данные) и в написании скриптов для помассовой обработки. Для задач на тысячи страниц правильная стратегия — дать агенту первую страницу, получить скрипт, запустить скрипт отдельно.


Цикл «агент + Playwright MCP: сбор данных»
Минимальная связка для работы с вебом — это кодинг-агент (Claude Code, OpenCode, Cursor) и MCP-сервер Playwright. Последний даёт агенту браузер без vision-модели: страница приходит как accessibility-дерево — список ролей, имён и текстов.
Подключение — одна команда:
claude mcp add playwright npx @playwright/mcp@latest
Теперь агенту доступны инструменты browser_*: открыть страницу, получить снимок дерева, кликнуть, ввести текст, подождать элемент. Результат — текст в контексте, а не картинка.

Давайте пройдём цикл на конкретном примере.
Кейс 1: собираем вакансии с hh.ru и нормализуем в CSV
Задача: собрать 50 вакансий Python-разработчика в Москве — позиция, компания, зарплата, ссылка — и сохранить в CSV. Промпт для агента:
Зайди на hh.ru, собери 50 вакансий Python-разработчика в Москве.
Для каждой: позиция, компания, зарплата (если есть), ссылка.
Оформи в CSV → jobs.csv
Что происходит за кулисами:
1. Агент открывает hh.ru/vacancies?text=python+developer&area=1 через Playwright MCP.
2. Читает accessibility-дерево — находит список вакансий, названия компаний, зарплаты.
3. Кликает по пагинации (или скроллит), пока не наберёт 50 записей.
4. Нормализует данные: зарплата «от 200 000 ₽» → поле salary_from, «не указана» → пустое значение.
5. Сохраняет в jobs.csv через стандартный csv.DictWriter.
Этот промпт — из реального туториала ab429 на Habr (habr.com/ru/articles/1020598/), апрель 2026, 11 тыс. просмотров. Автор целенаправленно оптимизировал работу Claude Code с сайтами, у которых есть anti-bot защита, и пришёл к выводу:
«Попросить LLM-агента типа Claude Code “сходи в интернет и собери мне данные” — это как играть в казино.»
— ab429, habr.com/ru/articles/1020598/
Сырой промпт без контекста работает нестабильно. Лучше — давать агенту пошаговую инструкцию:
1. Открой https://hh.ru/search/vacancy?text=python+developer&area=1
2. Прочитай список вакансий на странице (название, компания, зарплата, ссылка)
3. Если есть кнопка «Дальше» — перейди на следующую страницу
4. Повтори, пока не наберёшь 50 вакансий
5. Сохрани в jobs.csv со столбцами: title, company, salary, url
Ключевой момент: Playwright MCP отдаёт страницу как структуру, а не как картинку. Агент не «угадывает» координаты — он видит роли (link, heading, text) и имена элементов. Это детерминировано: один и тот же элемент кликается одинаково.
Кейс 2: парсинг HTML-таблицы через BeautifulSoup (агент пишет скрипт)
Не всегда нужно ходить по страницам браузером. Если данные уже скачаны — статическая HTML-страница, ответ API, экспорт из CMS — агент быстрее напишет скрипт на Python, чем будет проксировать всё через Playwright.
Задача: на HTML-странице есть таблица с ценами (500+ строк, несколько столбцов). Нужно извлечь данные и привести к единому формату.
Промпт:
В файле prices.html — HTML-таблица с ценами. Напиши скрипт на Python,
который:
1. Парсит все строки таблицы через BeautifulSoup (lxml)
2. Извлекает: название товара, артикул, цену, валюту
3. Нормализует цены: '5 000,00 руб.' → 5000.00, '5,000.00' → 5000.00
4. Сохраняет в prices_clean.csv
Запусти скрипт и проверь первые 5 строк результата.
Агент сгенерирует скрипт, использующий BeautifulSoup для парсинга и csv.DictWriter для записи. Используйте его как стартовую точку — и правьте под свою структуру HTML.
Документация по ключевым инструментам:
- BeautifulSoup 4 — парсинг HTML/XML. Версия 4.14.3 на момент публикации. Есть русская версия документации.
- Python json — модуль для чтения/записи JSON. В Python 3.14 появился CLI:
python -m jsonдля валидации и форматирования. - Python csv —
DictReader/DictWriterдля чтения и записи CSV с произвольными столбцами.
Парсинг HTML — типичная задача, где агент пишет скрипт один раз, а скрипт потом работает сам. Агент экономит время на написании, но данные обрабатывает уже Python.
Кейс 3: трансформация JSON → CSV в песочнице
Данные из API редко приходят в нужном формате. Конкретный пример из практики — Евгений из RS_AI (habr.com/ru/articles/970726/) строил систему анализа цен на рабочую одежду. У него было 5 000+ SKU из 1С с выгрузкой в Excel. Форматы цен разъезжались:
Цены были представлены в различных форматах: «5 000,00 руб.», «5000.00», «5,000.00», а иногда и в виде текстового поля «Цена по запросу»
— RS_AI, habr.com/ru/articles/970726/
Плюс столбцы назывались по-разному: «Арт.», «ID товара», «Код номенклатуры» — одно и то же.
Промпт для нормализации:
Есть 3 CSV-файла от разных поставщиков: vendor_a.csv, vendor_b.csv, vendor_c.csv.
Столбцы называются по-разному, но 의미 одинаковый.
Напиши скрипт на Python, который:
1. Читает все три файла
2. Маппит столбцы по словарю:
- product_name / название / наименование → product
- article / sku / id_товара / код_номенклатуры → code
- price / цена / стоимость → price (число, без пробелов и "руб.")
- description / описание → description
3. Нормализует цены: убирает пробелы, заменяет запятую на точку, отбрасывает "руб."
4. Удаляет дубликаты по code (оставляет первый)
5. Сохраняет в unified_prices.csv
Запускать такой скрипт нужно в песочнице — это изолированная среда (контейнер или VM), где скрипт не повредит файлы вне рабочей директории. Simon Willison рекомендует запускать автономных агентов в контейнерах:
«Run unattended coding agents in a container, VM or OS sandbox.»
«Запускайте автономных агентов в контейнере, виртуальной машине или песочнице ОС.»
— Simon Willison, simonwillison.net
Агент создаёт скрипт, запускает его, проверяет первые строки результата — и вы получаете нормализованный файл без ручного написания кода.
Кейс 4: парсинг сотен страниц — агент как инструмент разведки
Не каждый scraping — это 10 000 страниц. Иногда задача — собрать неструктурированные данные со страниц, у которых нет API, и превратить их в структуру.
Piotr Migdał (p.migdal.pl, январь 2026, Show HN) собирал данные о балансах StarCraft II из сотен патч-ноутов — разнородных страниц с разной структурой. Каждый патч описан по-разному, нет единого формата, нет API. Задача — извлечь изменения и построить интерактивную визуализацию.
“LLMs made it possible — otherwise, I would not have had the time to code or to collect all changes from hundreds of patches.”
«LLM сделали это возможным — иначе у меня не было бы времени ни написать код, ни собрать все изменения из сотен патчей.»
— Piotr Migdał, p.migdal.pl
Инструменты: Claude Code + Playwright Skills (CLI-режим Playwright), Gemini 3 Pro для инсайтов. Агент прошёл по патчам, извлёк текст, нормализовал в единую структуру (год, патч, юнит, изменение), а потом визуализировал через D3.js.
Стратегия для больших объёмов:
1. Агент парсит одну страницу и выдаёт скрипт парсинга.
2. Скрипт адаптируется под остальные страницы (с небольшими правками).
3. Запуск скрипта на всех страницах — уже без агента.
Агент — это разведка и генерация кода, а не обработчик 10 000 файлов.
Какие задачи отдавать агенту (сводная таблица)
| Тип задачи | Пример | Роль агента | Ожидаемый результат |
|---|---|---|---|
| Сбор с нескольких страниц | Расписание конференции, вакансии | Прямой: ходит по страницам через Playwright | JSON/CSV в контексте → сохранение в файл |
| Парсинг статичного HTML | Таблица цен, документация | Пишет скрипт на BeautifulSoup/lxml | Python-скрипт, который вы запускаете |
| Трансформация JSON/CSV | Нормализация данных из разных источников | Пишет скрипт на pandas/csv | Скрипт + результат в файле |
| API + пагинация | Хабр, GitHub Issues, JSONPlaceholder | Пишет скрипт с циклом + агент проверяет | Скрипт; при малых объёмах — прямой сбор |
| Работа за логином | Личный кабинет, аналитика, CRM | Playwright MCP + cookies через GhostSession | Данные из закрытого раздела |
| Валидация данных | Проверка, что ссылки не ведут в 404 | Прямой: обходит ссылки через Playwright | Список «живых» и «мёртвых» ссылок |
Инструменты: скрапинг и парсинг
Для работы с вебом у агента есть несколько подходов, и они дополняют друг друга.
Playwright MCP (github.com/microsoft/playwright-mcp) — MCP-сервер, дающий агенту браузер. Ставится через npx, не требует аккаунта, работает локально. Стандартный конфиг:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
Подробнее о подключении и ограничениях — в отдельной статье: «Playwright MCP: даём AI-агенту браузер».
Firecrawl — MCP-сервер для скрапинга с рядом режимов: Scrape (одна страница), Crawl (рекурсивный обход), Batch Scrape (пакетный), Extract (извлечение по JSON-схеме). ab429 на Habr (habr.com/ru/articles/1020598/) описал workflow: Firecrawl Extract берёт данные по схеме с JS-страниц, а агент обрабатывает результат.
BeautifulSoup / lxml — стандартный парсинг HTML в Python. Агент генерирует скрипт с BeautifulSoup(html, 'lxml'), вы проверяете и запускаете. Для статичных страниц и API-ответов быстрее, чем Playwright.
Python json / csv — встроенные модули для трансформации данных. json.loads() → csv.DictWriter, csv.DictReader → очистка → csv.DictWriter — типичный пайплайн нормализации.
Для объёмов свыше тысячи страниц агент будет работать как генератор скриптов: напишет скрипт, вы проверите и запустите его отдельно. Playwright MCP остаётся полезным для точечных проверок и работы за логином.
Российские реалии
Доступность инструментов
Playwright MCP — локальный open-source пакет (Apache-2.0), ставится через npm. В РФ работает без VPN, регистрации и банковской карты не требует. Beautifulsoup, pandas, csv, json — стандартная библиотека Python, никаких ограничений.
Для кодинг-агента, который будет вызывать инструменты, нужен доступ к API: Claude Code требует подписки или API-ключа с зарубежной картой. Бесплатные альтернативы — локальные модели через Ollama или связка OpenCode + Zen. Подробнее про AI в терминале — в отдельной статье.
Блокировки и обход
Сайты, которые блокируют ботов (Cloudflare, конфигурации с обфускацией JS), создают проблемы при скрапинге. Cloudflare за 2025 год заблокировал 416 млрд запросов ИИ-ботов на парсинг (habr.com/ru/news/973900/). В России контекст шире: часть ресурсов может блокироваться Роскомнадзором, а при скрапинге зеркальных сайтов нужно учитывать, что данные могут отличаться от оригинала.
Этическая сторона
Скрапинг публичных данных — серая зона. Закон РФ «О персональных данных» (152-ФЗ) защищает персональную информацию, обход авторизации и капчи нарушает условия сервиса. Соблюдайте robots.txt — это не юридическая обязанность, но индустриальная норма. Не собирайте персональные данные без обоснованной необходимости.
Рунет-опыт
Русскоязычных кейсов по использованию AI-агентов для скрапинга немного. Два найденных:
- ab429, «Как научить Claude Code работать с интернетом, не сжигая лимиты» (habr.com/ru/articles/1020598/, апрель 2026, 11 тыс. просмотров) — практический разбор Firecrawl + Claude Code для парсинга hh.ru, Ozon, SimilarWeb.
- RS_AI, «AI для анализа данных: от Excel до парсера» (habr.com/ru/articles/970726/, ноябрь 2025) — непрограммист строит парсер и анализатор цен на Gemini.
Отдельного/big-данных материала про скрапинг с AI-агентами в рунете нет — тема не освещена.
Ограничения
- Контекст: Playwright MCP — 21 инструмент ≈ 13,7 тыс. токенов на сессию. Для задач, где браузер не нужен, отключайте сервер и экономьте контекст.
- Скорость: агент с браузером медленнее скрипта на requests/httpx. На 100+ страницах скрипт обгоняет агента в 10–50 раз.
- Не стабильно: агент может «заблудиться» на странице с нестандартной структурой. Дублируйте критические проверки скриптами.
- Капча и anti-bot: Playwright MCP не обходит CAPTCHA, Cloudflare Turnstile и аналоги. Для таких сайтов нужны специализированные сервисы.
- Безопасность: страница может содержать промпт-инъекции. Ограничивайте хосты (
--allowed-hosts) и не оставляйте агента с браузером без присмотра.
Итог
ИИ для обработки данных — это не замена скриптам, а способ получить скрипт быстрее. Агент берёт на себя разведку (понять структуру данных), написание кода (парсер на BeautifulSoup, трансформация JSON → CSV) и точечные проверки (собрать 10–20 страниц для валидации). Для помассовой обработки — скрипт, агент его написал.

Три паттерна:
1. Промпт → Playwright → файл: прямой сбор данных с нескольких страниц (вакансии, расписания, цены).
2. Промпт → скрипт → запуск: парсинг HTML/JSON, трансформации, нормализация — агент пишет, вы запускаете.
3. Разведка → скрипт → обработка: на 100+ страницах агент изучает одну страницу и выдаёт скрипт для остальных.
Начните с простого: подключите Playwright MCP (claude mcp add playwright npx @playwright/mcp@latest), откройте страницу с данными, скажите «собери в CSV». Двадцать минут — и вы поймёте, где агент силён.
Дальше по серии: «Playwright MCP: даём AI-агенту браузер» — про подключение и ограничения MCP-сервера, «ИИ для баз данных» — про генерацию SQL и работу с БД через MCP, «Песочницы для ИИ-агентов» — про изолированный запуск кода, «ИИ в терминале» — про CLI-инструменты, «Что такое агентный кодинг» — фундамент серии.
