Passer au contenu principal

Prérequis

Configuration

npm create cloudflare@latest my-scraper
cd my-scraper
npm install @mendable/evocrawl-js
Ajoutez votre clé API en tant que secret :
wrangler secret put EVOCRAWL_API_KEY

Rechercher sur le web

Créez un gestionnaire qui effectue une recherche sur le web et renvoie les résultats avec le contenu complet des pages. Modifiez src/index.ts:
import Evocrawl from "@mendable/evocrawl-js";

export interface Env {
  EVOCRAWL_API_KEY: string;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const evocrawl = new Evocrawl({ apiKey: env.EVOCRAWL_API_KEY });
    const url = new URL(request.url);

    if (request.method === "POST" && url.pathname === "/search") {
      const { query } = (await request.json()) as { query: string };
      const results = await evocrawl.search(query, { limit: 5 });
      return Response.json(results);
    }

    return new Response("Not found", { status: 404 });
  },
};

Scraper une page

Ajoutez une route /scrape pour extraire du Markdown propre à partir de n’importe quelle URL.
if (request.method === "POST" && url.pathname === "/scrape") {
  const { url: targetUrl } = (await request.json()) as { url: string };
  const result = await evocrawl.scrape(targetUrl);
  return Response.json(result);
}

Interact avec une page

Ajoutez une route /interact pour piloter une session de navigateur en direct, afin de cliquer sur des boutons, remplir des formulaires et extraire du contenu dynamique.
if (request.method === "POST" && url.pathname === "/interact") {
  const result = await evocrawl.scrape("https://www.amazon.com", {
    formats: ["markdown"],
  });
  const scrapeId = result.metadata?.scrapeId;

  await evocrawl.interact(scrapeId, {
    prompt: "Search for iPhone 16 Pro Max",
  });
  const response = await evocrawl.interact(scrapeId, {
    prompt: "Click on the first result and tell me the price",
  });

  await evocrawl.stopInteraction(scrapeId);
  return Response.json({ output: response.output });
}

Déploiement

wrangler deploy

Essayez-le

curl -X POST https://my-scraper.<your-subdomain>.workers.dev/search \
  -H "Content-Type: application/json" \
  -d '{"query": "evocrawl web scraping"}'

Étapes suivantes

Documentation de recherche

Recherchez sur le web et obtenez le contenu intégral des pages

Documentation Scrape

Toutes les options de scrape, y compris les formats, les actions et les proxies

Documentation Interact

Cliquez, remplissez des formulaires et extrayez du contenu dynamique

Référence du SDK Node

Référence complète du SDK avec crawl, cartographie, extraction par lot, etc.