Skip to main content
POST https://api.acedata.cloud/webextrator/extract WebExtrator inteligentny interfejs API przekształca URL w typizowane wyniki strukturalne — artykuły, produkty, przepisy, filmy, dyskusje, oferty pracy itp., a także dostarcza oczyszczony Markdown i czysty tekst. Gdy chcesz uzyskać “czyste dane strukturalne” zamiast surowego HTML, to jest interfejs, którego należy użyć. Na dole znajduje się trójwarstwowa linia produkcyjna:
  1. mapper JSON-LD schema.org — deterministyczny, zerowy koszt LLM. Obejmuje Wikipedia / BestBuy / AllRecipes / YouTube / większość wiadomości / większość stron produktów.
  2. typizowane LLM ekstrakcje — uruchamiane tylko wtedy, gdy schema.org nie jest trafione. Wybierz schemat według typu strony, ścisła walidacja Zod.
  3. Readability + Markdown jako zabezpieczenie — zawsze działa, uzupełniając górne pola, które nie zostały wypełnione przez dwie pierwsze warstwy.
Powtarzające się żądania URL będą przechwytywane przez pamięć podręczną wyników Redis, <1 ms zwrotu.

Proces aplikacji

Aby korzystać z usługi WebExtrator, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój token API, który należy zachować na przyszłość. Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę. Jeden token API wystarczy do wywołania wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Pierwsze zgłoszenie otrzyma darmowy limit, aby można było bezpłatnie przetestować; w przypadku niewystarczającego limitu można doładować ogólny bilans w konsoli.
📘 Pełna dokumentacja: Strona usługi WebExtrator →

Autoryzacja

Parametry żądania

Extract akceptuje wszystkie parametry Render API (url, user_agent, timeout, wait_until, delay, wait_for_selector, block_resources, headers, cookies, callback_url, bypass_cache, cache_ttl_seconds, async), plus dwa pola specyficzne dla Extract:
Gdy strona zawiera schema.org JSON-LD, enable_llm jest nieaktywne — deterministyczny mapper zwraca wyniki, nigdy nie marnując wywołania LLM. Otrzymujesz darmowe wyniki typizowane.

Odpowiedź synchronizacyjna

Pola górne

Podpola data.structured

Zakres mapowania schema.org

Posortowane według priorytetu (gdy trafione, traktowane jako structured.schemaOrg.primary): Przetwarzanie mapera:
  • Kontener @graph (rekurencyjnie rozwijany);
  • Tablica @type (np. ["Recipe", "NewsArticle"] — oba rozpoznawane, wygrywa ten o wyższym priorytecie);
  • Warianty z prefiksem http://schema.org/;
  • Zagnieżdżone Offer i AggregateOffer (ten drugi odczytuje lowPrice);
  • Względne URL-e obrazów (rozwiązywane do absolutnych na podstawie finalUrl).

Typizowany schemat LLM

Gdy enable_llm: true i schema.org nie ma primary, ekstraktor na podstawie URL-u heurystycznie (w lub expected_type wskazówka) wybiera jeden z poniższych modeli walidacji Zod Schema: W przypadku sukcesu LLM, również nastąpi “last-resort” uzupełnienie do pól najwyższego poziomu:
  • articledescription / byline / publishedAt / language
  • productdescription
  • discussiondescription (= body pierwsze 280 znaków) / byline (= author) / publishedAt (= postedAt)
  • recipedescription / byline (= author)
  • videodescription / byline (= channel) / publishedAt (= uploadDate)
  • jobdescription / byline (= company) / publishedAt (= datePosted)
Uzupełnienie następuje tylko wtedy, gdy źródło danych nie wypełniło odpowiadających pól — LLM zawsze jest ostatnią deską ratunku.

Cache

Te same żądania będą haszowane do tego samego klucza Redis: webextrator:cache:extract:<sha256(canonical-json)>. Klucz cache ignoruje async, bypass_cache, cache_ttl_seconds (to jest przełącznik operacyjny, nie wpływa na odpowiedź). cookies / headers będą przechowywane w oddzielnych zbiorach. Odpowiedzi z trafieniem w cache będą zawierały data.cached: true oraz data.cacheStoredAt: <unix-ms>.

Tryb asynchroniczny i callback

Ustawienie async: true włącza tryb asynchroniczny (podanie callback_url również automatycznie włącza). Platforma natychmiast zwraca (HTTP 200):
Po zakończeniu zadania, pełny envelope zostanie POST do twojego callback_url (jeśli skonfigurowano). Można również później aktywnie sprawdzić przez /webextrator/tasks.

Przykład

1. Artykuł Wikipedia (trafienie schema.org, nie wymaga LLM)

Kluczowe pola data.structured.schemaOrg.primary:

2. Strona produktu BestBuy (schema.org hit)

schema.org wyciąg:

3. Strona przepisu AllRecipes (z wartościami odżywczymi i krokami)

schema.org wyciąg:

4. Strona dyskusji HN (bez JSON-LD — wymaga włączenia LLM)

data.structured.llm.data:
Najwyższe pola również zostały uzupełnione: byline = "alice"publishedAt = "..."

5. Strona produktu Amazon (Amazon bez JSON-LD — wymaga włączenia LLM)

data.structured.llm.data (typ produkt):

Python (requests)

Node.js (fetch)

Wskazówki i pułapki

  • Jeśli można przekazać expected_type, to to zrób. Darmowa wskazówka, pomijająca heurystyczne oceny, szczególnie przydatna dla stron, których wzór URL nie znajduje się na wbudowanej liście.
  • enable_llm: true na stronach z trafieniem schema.org jest darmowe. LLM jest wywoływane tylko wtedy, gdy schema.org nie ma primary, więc domyślnie jest to również bezpieczne.
  • Podczas debugowania najpierw sprawdź rawSignals.hasJsonLd. Jeśli jest true, ale structured.schemaOrg.primary jest null, oznacza to, że strona używa typu @type, którego nasz mapper jeszcze nie pokrył — zgłoś problem, dodamy.
  • structured.llmError jest informacyjne. Żądanie nadal jest udane, a wyniki heurystyczne są nadal zwracane. Sprawdź llmError.error, aby zlokalizować przyczynę (przekroczenie czasu, błąd analizy JSON, błąd walidacji Zod).
  • Linki na stronach innych niż artykuły nie będą sortowane według trafności. Tylko według “maksymalnie 100 pozycji + filtracja nieprawidłowych protokołów” staramy się oczyścić.
  • Hit cache również jest płatny. Cache jest przeznaczone na opóźnienia i ochronę puli przeglądarek, a nie na oszczędzanie pieniędzy.