POST https://api.acedata.cloud/webextrator/extract
WebExtrator Интеллектуальный API извлечения преобразует URL в типизированные структурированные результаты — статьи, товары, рецепты, видео, обсуждения, вакансии и т.д., одновременно предоставляя очищенные Markdown и чистый текст. Когда вам нужны “чистые структурированные данные”, а не исходный HTML, это интерфейс, который следует использовать.
В основе лежит трехуровневая система:
- schema.org JSON-LD маппер — детерминированный, нулевые затраты LLM. Охватывает Wikipedia / BestBuy / AllRecipes / YouTube / большинство новостей / большинство страниц товаров.
- Типизированное LLM извлечение — срабатывает только в случае, если schema.org не сработал. Выбор схемы в зависимости от типа страницы, строгая проверка Zod.
- Readability + Markdown подстраховка — всегда работает, заполняя верхние поля, которые не были заполнены первыми двумя уровнями.
Процесс подачи заявки
Чтобы использовать страницу сервиса WebExtrator, сначала перейдите в консоль Ace Data Cloud и получите ваш API Token для резервного копирования.
Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, приглашающую вас зарегистрироваться и войти в систему, после чего вы будете автоматически возвращены на текущую страницу.
Один API Token позволяет вызывать все сервисы платформы, не нужно подавать отдельные заявки на каждый сервис. При первой подаче заявки предоставляется бесплатный лимит, чтобы вы могли бесплатно протестировать; при недостатке лимита вы можете пополнить общий баланс в консоли.
📘 Полная документация: Страница сервиса WebExtrator →
Аутентификация
Параметры запроса
Extract принимает все параметры Render API (url, user_agent, timeout, wait_until, delay, wait_for_selector,
block_resources, headers, cookies, callback_url, bypass_cache,
cache_ttl_seconds, async), плюс два эксклюзивных поля Extract:
Когда страница содержит schema.org JSON-LD, enable_llm не имеет эффекта — детерминированный маппер сразу выдает результат, никогда не тратя вызов LLM. Вы бесплатно получаете типизированный результат.
Синхронный ответ
Верхние поля
Подполя data.structured
Область охвата маппера schema.org
Сортировка по приоритету (при попадании используется какstructured.schemaOrg.primary):
Обработка маппера:
- Контейнер
@graph(рекурсивное развертывание); - Массив
@type(например,["Recipe", "NewsArticle"]— оба распознаются, приоритет отдается первому); - Варианты с префиксом
http://schema.org/; - Вложенные
OfferиAggregateOffer(последний читаетlowPrice); - Относительные URL изображений (разрешаются в абсолютные по
finalUrl).
Типизированная схема LLM
Когдаenable_llm: true и schema.org не имеет primary, парсер по URL использует эвристический
(или подсказку expected_type) для выбора одной из моделей вывода Zod Schema:
При успешном выполнении LLM также будет производить “последнюю попытку” заполнения верхних полей:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(первые 280 символов тела) /byline(автор) /publishedAt(postedAt)recipe→description/byline(автор)video→description/byline(канал) /publishedAt(uploadDate)job→description/byline(компания) /publishedAt(datePosted)
Кэширование
Одинаковые запросы будут хэшироваться в один и тот же ключ Redis:webextrator:cache:extract:<sha256(canonical-json)>. Ключ кэша игнорирует async,
bypass_cache, cache_ttl_seconds (это переключатель, не влияющий на ответ). cookies /
headers будут кэшироваться по отдельным корзинам.
Ответы, попадающие в кэш, будут содержать
data.cached: true и data.cacheStoredAt: <unix-ms>.
Асинхронный режим и обратные вызовы
Установитеasync: true, чтобы перейти в асинхронный режим (предоставление callback_url также автоматически приведет к этому). Платформа немедленно возвращает (HTTP 200):
POST на ваш callback_url (если он настроен). Также можно
позже запросить через /webextrator/tasks.
Пример
1. Статья Wikipedia (попадание schema.org, LLM не требуется)
data.structured.schemaOrg.primary:
2. Страница товара BestBuy (schema.org совпадение)
3. Страница рецепта AllRecipes (с питательной ценностью и шагами)
4. Страница обсуждения HN (без JSON-LD —— необходимо включить LLM)
data.structured.llm.data:
byline = "alice"、publishedAt = "..."。
5. Страница товара Amazon (Amazon без JSON-LD —— необходимо включить LLM)
data.structured.llm.data(тип product):
Python (requests)
Node.js (fetch)
Подсказки и ловушки
- Если можно передать
expected_type, передавайте. Бесплатная подсказка, пропустите эвристическое определение, особенно полезно для страниц, URL-адреса которых не находятся в встроенном списке. enable_llm: trueна страницах с совпадением schema.org бесплатно. LLM вызывается только тогда, когда schema.org не имеет primary, поэтому по умолчанию это также безопасно.- При отладке сначала смотрите
rawSignals.hasJsonLd. Если этоtrue, ноstructured.schemaOrg.primaryравноnull, это означает, что страница использует тип@type, который еще не охвачен нашим маппером — создайте issue, мы добавим. structured.llmErrorявляется информационным. Запрос все равно успешен, эвристические результаты все равно возвращаются. СмотритеllmError.error, чтобы определить причину (тайм-аут, ошибка разбора JSON, ошибка проверки Zod).- Ссылки на не-статьи
links[]не будут сортироваться по релевантности. Только по “максимум 100 записей + фильтрация недействительных протоколов” стараемся очистить. - Кэширование также учитывается в расчетах. Кэш предназначен для уменьшения задержек и защиты пула браузеров, а не для экономии.

