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:
- mapper JSON-LD schema.org — deterministyczny, zerowy koszt LLM. Obejmuje Wikipedia / BestBuy / AllRecipes / YouTube / większość wiadomości / większość stron produktów.
- typizowane LLM ekstrakcje — uruchamiane tylko wtedy, gdy schema.org nie jest trafione. Wybierz schemat według typu strony, ścisła walidacja Zod.
- Readability + Markdown jako zabezpieczenie — zawsze działa, uzupełniając górne pola, które nie zostały wypełnione przez dwie pierwsze warstwy.
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 jakostructured.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
OfferiAggregateOffer(ten drugi odczytujelowPrice); - Względne URL-e obrazów (rozwiązywane do absolutnych na podstawie
finalUrl).
Typizowany schemat LLM
Gdyenable_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:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(= body pierwsze 280 znaków) /byline(= author) /publishedAt(= postedAt)recipe→description/byline(= author)video→description/byline(= channel) /publishedAt(= uploadDate)job→description/byline(= company) /publishedAt(= datePosted)
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
Ustawienieasync: true włącza tryb asynchroniczny (podanie callback_url również automatycznie włącza). Platforma natychmiast zwraca (HTTP 200):
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)
data.structured.schemaOrg.primary:
2. Strona produktu BestBuy (schema.org hit)
3. Strona przepisu AllRecipes (z wartościami odżywczymi i krokami)
4. Strona dyskusji HN (bez JSON-LD — wymaga włączenia LLM)
data.structured.llm.data:
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: truena 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 jesttrue, alestructured.schemaOrg.primaryjestnull, oznacza to, że strona używa typu@type, którego nasz mapper jeszcze nie pokrył — zgłoś problem, dodamy. structured.llmErrorjest 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.

