Skip to main content
POST https://api.acedata.cloud/webextrator/extract WebExtrator Интеллектуальный API извлечения преобразует URL в типизированные структурированные результаты — статьи, товары, рецепты, видео, обсуждения, вакансии и т.д., одновременно предоставляя очищенные Markdown и чистый текст. Когда вам нужны “чистые структурированные данные”, а не исходный HTML, это интерфейс, который следует использовать. В основе лежит трехуровневая система:
  1. schema.org JSON-LD маппер — детерминированный, нулевые затраты LLM. Охватывает Wikipedia / BestBuy / AllRecipes / YouTube / большинство новостей / большинство страниц товаров.
  2. Типизированное LLM извлечение — срабатывает только в случае, если schema.org не сработал. Выбор схемы в зависимости от типа страницы, строгая проверка Zod.
  3. Readability + Markdown подстраховка — всегда работает, заполняя верхние поля, которые не были заполнены первыми двумя уровнями.
Повторные запросы URL будут перехвачены кэшем результатов Redis, <1 мс возврат.

Процесс подачи заявки

Чтобы использовать страницу сервиса 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/ 前缀变体;
  • 嵌套 OfferAggregateOffer(后者读 lowPrice);
  • 相对图像 URL(按 finalUrl 解析为绝对)。

LLM 类型化 Schema

enable_llm: true schema.org 没有 primary 时,抽取器按 URL 启发式 (或 expected_type 提示)选下面之一的 Zod Schema 校验模型输出: LLM 成功时还会向顶层字段做”last-resort”回填:
  • articledescription / byline / publishedAt / language
  • productdescription
  • discussiondescription(= body 前 280 字)/ byline(= author)/ publishedAt(= postedAt)
  • recipedescription / byline(= author)
  • videodescription / byline(= channel)/ publishedAt(= uploadDate)
  • jobdescription / byline(= company)/ publishedAt(= datePosted)
回填只在确定性数据源没填对应字段时触发 —— LLM 始终是最后一道兜底。

缓存

相同请求会被哈希到同一个 Redis Key: webextrator:cache:extract:<sha256(canonical-json)>。缓存 Key 忽略 asyncbypass_cachecache_ttl_seconds(这是操作开关,不影响响应)。cookies / headers 分桶缓存。 命中缓存的响应会带上 data.cached: truedata.cacheStoredAt: <unix-ms>

异步模式与回调

设置 async: true 进入异步模式(提供 callback_url 也会自动进入)。平台立即返回(HTTP 200):
任务完成时把完整 envelope POST 到你的 callback_url(如果配置了)。也可以事 后通过 /webextrator/tasks 主动查询。

示例

1. Wikipedia 文章(schema.org 命中,不需要 LLM)

data.structured.schemaOrg.primary 关键字段:

2. Страница товара BestBuy (schema.org совпадение)

schema.org извлечение:

3. Страница рецепта AllRecipes (с питательной ценностью и шагами)

schema.org извлечение:

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 записей + фильтрация недействительных протоколов” стараемся очистить.
  • Кэширование также подлежит оплате. Кэш предназначен для уменьшения задержек и защиты пула браузеров, а не для экономии.