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 类型化 Schema
当enable_llm: true 且 schema.org 没有 primary 时,抽取器按 URL 启发式
(或 expected_type 提示)选下面之一的 Zod Schema 校验模型输出:
LLM 成功时还会向顶层字段做”last-resort”回填:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(= body 前 280 字)/byline(= author)/publishedAt(= postedAt)recipe→description/byline(= author)video→description/byline(= channel)/publishedAt(= uploadDate)job→description/byline(= company)/publishedAt(= datePosted)
缓存
相同请求会被哈希到同一个 Redis Key:webextrator:cache:extract:<sha256(canonical-json)>。缓存 Key 忽略 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 записей + фильтрация недействительных протоколов” стараемся очистить. - Кэширование также подлежит оплате. Кэш предназначен для уменьшения задержек и защиты пула браузеров, а не для экономии.

