← Browser Run / browser-run / quick-actions
/scrape - Extrakce prvků HTML
/scrape endpoint extrahuje strukturovaná data z konkrétních prvků na webové stránce a vrací podrobnosti, jako jsou rozměry prvku a vnitřní HTML.
Tento koncový bod můžete použít dvěma způsoby:
- REST API: Vytvořte vlastní API Token hodnotou
Browser Rendering - Editoprávnění. - Workers Bindings: Volejte endpoint přímo z Cloudflare Worker pomocí Workers Bindings. Není potřeba žádný API token.
Další informace najdete v tématu Quick Actions: Než začnete.
Endpoint
https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/scrapePovinná pole
Musíte zadat elements a přesně jeden z url nebo html:
url(řetězec)html(řetězec)elements(pole objektů), přičemž každý objekt musí obsahovatselector(řetězec)
Běžné případy použití
- Extrakce nadpisů, odkazů, cen nebo dalšího opakujícího se obsahu pomocí CSS selektorů
- Shromážděte metadata (například názvy, popisy, kanonické odkazy)
Základní použití
Extrakce nadpisů a odkazů z adresy URL
Přejděte na https://example.com a extrahovat metadata ze všech h1 a a prvků v DOM.
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/scrape' \
-H 'Authorization: Bearer <apiToken>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com/",
"elements": [{
"selector": "h1"
},
{
"selector": "a"
}]
}'{
"success": true,
"result": [
{
"results": [
{
"attributes": [],
"height": 39,
"html": "Example Domain",
"left": 100,
"text": "Example Domain",
"top": 133.4375,
"width": 600
}
],
"selector": "h1"
},
{
"results": [
{
"attributes": [
{ "name": "href", "value": "https://www.iana.org/domains/example" }
],
"height": 20,
"html": "More information...",
"left": 100,
"text": "More information...",
"top": 249.875,
"width": 142
}
],
"selector": "a"
}
]
}import Cloudflare from "cloudflare";
const client = new Cloudflare({
apiToken: process.env["CLOUDFLARE_API_TOKEN"],
});
const scrapes = await client.browserRendering.scrape.create({
account_id: process.env["CLOUDFLARE_ACCOUNT_ID"],
url: "https://example.com/",
elements: [{ selector: "h1" }, { selector: "a" }],
});
console.log(scrapes);interface Env {
BROWSER: BrowserRun;
}
export default {
async fetch(request, env): Promise<Response> {
return await env.BROWSER.quickAction("scrape", {
url: "https://example.com/",
elements: [{ selector: "h1" }, { selector: "a" }],
});
},
} satisfies ExportedHandler<Env>;K dispozici je mnohem více možností, například nastavení přihlašovacích údajů HTTP pomocí authenticate, nastavením cookies, a pomocí gotoOptions k řízení chování při načítání stránky, ověřte koncový bod reference pro všechny dostupné parametry.
Pole odpovědi
results(pole objektů) - Obsahuje extrahovaná data pro každý selektor.selector(řetězec) - Použitý selektor CSS.results(pole objektů) - Seznam extrahovaných prvků odpovídajících selektoru.text(řetězec) - Vnitřní text prvku.html(řetězec) - Vnitřní HTML prvku.attributes(pole objektů) - Seznam extrahovaných atributů, napříkladhrefpro odkazy.height,width,top,left(číslo) - Poloha a rozměry prvku.
Pokročilé použití
Práce se stránkami náročnými na JavaScript
U stránek s velkým množstvím JavaScriptu nebo jednostránkových aplikací (SPA) může výchozí chování při načítání stránky vracet prázdné nebo neúplné výsledky. Je to dáno tím, že prohlížeč považuje stránku za načtenou dříve, než JavaScript dokončí vykreslení obsahu.
Nejjednodušším řešením je použít gotoOptions.waitUntil parametr nastavený na networkidle0 nebo networkidle2:
{
"url": "https://example.com",
"gotoOptions": {
"waitUntil": "networkidle0"
}
}Pro rychlejší odezvu mohou pokročilí uživatelé použít waitForSelector k čekání na konkrétní prvek namísto čekání na zastavení veškeré síťové aktivity. To vyžaduje znalost, který CSS selektor signalizuje, že se požadovaný obsah načetl. Další podrobnosti najdete v Časové limity Quick Actions.
Nastavení vlastního user-agenta
User agent můžete změnit na úrovni stránky předáním userAgent jako parametr nejvyšší úrovně v těle JSON. To je užitečné, pokud cílový web zobrazuje různý obsah podle uživatelského agenta.
Řešení potíží
Pokud máte dotazy nebo narazíte na chybu, podívejte se na Časté dotazy a průvodce řešením problémů Browser Run.