Извлечение структурированных данных с любого сайта через API
Превращайте страницы в JSON: читайте их как Markdown, обходите сайт целиком, делайте скриншоты или поручите браузерному агенту заполнить вашу схему.
Вам нужны данные с сайта в виде JSON, с которым может работать ваш код: таблица цен, характеристики товаров, каталог, список открытых вакансий. Чтобы извлечь структурированные данные с сайта, выберите самый лёгкий инструмент, который справится с задачей. Если платформу покрывает инструмент из каталога, используйте его; если данные лежат на публичных страницах, хватит чтения страницы или обхода сайта; а браузерный агент с output_schema берите тогда, когда до данных нужно добраться через поиск, фильтры, клики или вход в аккаунт.
Передайте это своему ИИ-агенту
Скопируйте этот промпт в Claude Code, Cursor, Codex или любой кодинг-агент. Он подскажет агенту, где документация и как использовать ваш API-ключ.
Extract structured data from websites for me with Lovely Router: read pages as Markdown, crawl whole sites, take screenshots, or let the browser agent click through pages and fill a JSON schema.
- Docs (read first): https://lovelyrouter.com/docs/tools/run.md and https://lovelyrouter.com/docs/browser-agent/structured-output.md
- Simple pages (read a page as Markdown, crawl a site, screenshots, contact details): data tools. Plan with POST https://lovelyrouter.com/v1/tools/suggest and `{"task": "..."}` (free): it returns the tools to run, example inputs, estimated costs and ready-made run requests. Run with POST https://lovelyrouter.com/v1/tools/<id>/run; a 202 means poll the `poll` path.
- Pages that need clicks, logins or forms: POST https://lovelyrouter.com/v1/browser/runs with `{"goal": "...", "start_url": "...", "output_schema": {...}}` and read `data` when the run ends (docs: https://lovelyrouter.com/docs/api/browser.md).
- Prefer the cheapest tool that works: page reading and crawls cost less than browser steps.
- If you support MCP, you can instead connect the server https://lovelyrouter.com/mcp (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the site or URLs and the fields you need, as a JSON schema if you have one>Выберите подходящий инструмент
| Ваша ситуация | Что использовать | Что вы получите |
|---|---|---|
| Платформа, которую покрывает каталог, например Google Maps, Amazon или LinkedIn | Инструмент этой платформы, например Поиск мест в Google Maps | Собственные поля платформы, оплата за результат |
| Одна страница, URL которой вам известен | Чтение веб-страницы | Заголовок и текст в виде чистого Markdown |
| Много страниц одного сайта | Обход сайта в Markdown | Каждая страница в Markdown, готовом для LLM |
| Email, телефоны и ссылки на соцсети | Email и контакты с сайта | Контакты, объединённые по сайту, обход до 5 страниц |
| Как выглядит страница | Скриншот веб-страницы | Ссылка на PNG, JPEG, WebP или PDF всей страницы |
| Данные за поисковой строкой, фильтрами, кнопками «Показать ещё» или входом в аккаунт | Браузерный агент с output_schema | Проверенный JSON по вашей схеме |
MCP-сервер даёт агентам тот же совет: искать информацию и читать страницы через web_search и web_fetch, а браузерного агента оставлять для страниц, с которыми нужно взаимодействовать, и для сайтов, которые не покрывает ни один инструмент.
Как это работает
Сначала проверьте каталог
Опишите задачу в
POST /v1/tools/suggestили найдите инструмент черезPOST /v1/tools/discover. Оба вызова бесплатны и возвращают инструмент, пример входных данных и стоимость. См. Как найти нужный инструмент.Прочитайте или обойдите публичные страницы
Запустите
web-fetchдля одного URL илиwebsite-crawlдля раздела сайта и превратите Markdown в JSON своим парсером или моделью на том же ключе.Извлекайте по схеме, когда без взаимодействия не обойтись
Запустите браузерного агента с целью, стартовым URL и
output_schema. Агент пройдёт по страницам и вернёт вdataJSON, соответствующий вашей схеме.
Получите JSON по своей схеме
Этот запуск открывает категорию Travel в книжном магазине и возвращает все книги со страницы в виде JSON:
curl https://lovelyrouter.com/v1/browser/runs \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"goal": "Open the Travel category and list every book on the first page with its title, price, star rating, stock status and link.",
"start_url": "https://books.toscrape.com/",
"output_schema": {
"books": [{"title": "string", "price": "price as shown, with currency", "rating": "star rating as shown", "in_stock": "boolean", "url": "string"}]
}
}'Ответ — 202 с id запуска. Запрашивайте GET /v1/browser/runs/{id}?wait=30, пока запуск не завершится, затем читайте data. Краткая запись сопоставляет каждому полю тип; описание вроде "price as shown, with currency" делает поле строкой, которую агент заполнит так, как вы описали. Для перечислений, форматов и обязательных полей отправьте вместо этого полноценную JSON Schema (draft 2020-12) размером до 20 КБ.
Почему на этот вывод можно опираться:
JSON сверяется с вашей схемой. Если первая попытка не прошла проверку, агент получает ошибки и один раз исправляет результат; если и это не помогло, data_error объясняет причину.
data строится из текста и ссылок страниц, которые посетил агент, поэтому URL ссылок настоящие. Значение, которого нет на странице, возвращается как null, а список без данных — пустым.
Структурированный вывод входит в цену шага.
Чтение и обход без браузера
Для публичных страниц браузер — это избыточно. Этот обход читает раздел вакансий и останавливается на 50 страницах:
curl https://lovelyrouter.com/v1/tools/website-crawl/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"startUrls": [{"url": "https://www.example.com/careers/"}],
"maxCrawlDepth": 2,
"excludeUrlGlobs": ["https://www.example.com/careers/archive/**"]
},
"max_results": 50
}'Каждый элемент — одна страница в Markdown. Передайте страницы модели вместе с нужными полями, и открытые вакансии будут у вас в JSON. includeUrlGlobs расширяет обход за пределы вложенных страниц стартового URL, а useSitemaps добавляет URL из sitemap сайта.
Инструменты
Задайте цель и стартовую страницу — ИИ-агент выполнит задачу в настоящем браузере: переходы по страницам, заполнение форм, вход с сохранёнными секретами, запрос кодов у вас, передача управления на CAPTCHA, ожидание вашего подтверждения перед покупками и возврат структурированного JSON по вашей схеме. Для задач, где нужно взаимодействие; чтобы просто прочитать страницу, используйте «Чтение веб-страницы» (web-fetch). $0.006 за шаг в быстром режиме, $0.012 в точном (при сомнениях смотрит на скриншоты, может запускать код только для чтения данных). В каждый шаг входит 1 минута; время сверх этого (например, ожидание вашего подтверждения) стоит $0.005/мин. Полный API: /v1/browser.
Любая публичная веб-страница в виде чистого Markdown: заголовок и текст без навигации и рекламы. Для одной страницы, URL которой уже известен.
Обходит весь сайт (или его раздел) и возвращает каждую страницу в чистом Markdown, готовом для LLM. Подходит для RAG и сайтов документации.
Скриншот веб-страниц целиком (PNG или PDF); возвращает ссылку на изображение.
Обходит сайты и извлекает email, телефоны и ссылки на соцсети. Один результат = один сайт (обходится до 5 его страниц, контакты объединяются).
Рецепты
Запустите браузерного агента на странице цен каждого конкурента со схемой {"plans": [{"name": "string", "price_per_month": "number", "includes_sso": "boolean"}]}. Для длинных таблиц используйте "mode": "accurate": в этом режиме агент может читать их кодом страницы только для чтения, а не только по видимому тексту.
Впишите поисковый запрос в цель («Найди наушники с шумоподавлением и возьми первые 5 результатов») и опишите поля в схеме. Данные берутся из последних шести страниц, которые посетил агент, поэтому длинные списки с пагинацией разбивайте на отдельные запуски по странице или группе страниц.
Передайте в запуск с извлечением secrets из хранилища или сохранённый profile. Значения секретов никогда не попадают в data.
Запустите website-screenshot с "format": "pdf", чтобы сохранить, что было на странице в определённый день, а если контент подгружается с задержкой, задайте delayMs.
Отправьте сайты в website-contacts как startUrls и получите email, телефоны и ссылки на соцсети по каждому сайту.
Сколько это стоит
Чтение страницы стоит $0.0009, а страница, которую не удалось прочитать, ничего не стоит. Инструменты обхода, скриншотов и контактов тарифицируются за страницу, скриншот или сайт, а обход добавляет плату за вызов; актуальные цены — на карточках выше. Браузерный агент тарифицируется за шаг: $0.006 в быстром режиме и $0.012 в точном, модели и структурированный вывод включены, платы за запуск нет. Каждый запуск сначала резервирует свою максимальную стоимость, а затем списывает фактически использованное. Без подписки. См. цены.
Частые вопросы
Когда использовать браузерного агента, а не инструмент для парсинга?+
Если платформу покрывает инструмент из каталога, используйте его, а для публичных страниц — web-fetch или website-crawl. Браузерный агент — ИИ-парсер, работающий в настоящем браузере, — нужен, когда данные появляются только после поиска, фильтрации, кликов или входа в аккаунт.
Проверяется ли извлечённый JSON по моей схеме?+
Да. Результат проверяется, и если первая попытка не соответствует схеме, агент один раз её исправляет. Если извлечь данные так и не удалось, data равно null, а data_error содержит причину.
Что будет, если поля нет на странице?+
Оно вернётся как null, а списки — пустыми. Агент строит data только по посещённым страницам и никогда не подставляет значения наугад.
Можно ли получить весь сайт в Markdown?+
Да. Инструмент website-crawl возвращает каждую страницу сайта или раздела в чистом Markdown; можно ограничить число страниц и глубину, а также включать или исключать URL по шаблонам.
Стоит ли структурированный вывод дополнительно?+
Нет. Структурированный вывод входит в цену шага браузерного агента.
См. также: веб-автоматизация для отправки форм, исследовательские агенты для поиска и RAG и руководство по структурированному выводу.
Один предоплаченный ключ для моделей, данных и агентов
Без подписки. Пополняйте баланс, используйте сколько нужно и смотрите каждое списание в логах.