Passer au contenu principal

Prérequis

Configuration

Créez main.ts :
import Firecrawl from "npm:@mendable/firecrawl-js";

const firecrawl = new Firecrawl({
  apiKey: Deno.env.get("FIRECRAWL_API_KEY"),
});

Rechercher sur le web

Ajoutez une route /search qui permet d’effectuer une recherche sur le web et de renvoyer les résultats avec le contenu complet des pages.
Deno.serve(async (req) => {
  const url = new URL(req.url);

  if (req.method === "POST" && url.pathname === "/search") {
    const { query } = await req.json();
    const results = await firecrawl.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 (req.method === "POST" && url.pathname === "/scrape") {
  const { url: targetUrl } = await req.json();
  const result = await firecrawl.scrape(targetUrl);
  return Response.json(result);
}

Interagir avec une page

Ajoutez une route /interact pour contrôler une session de navigateur en direct — cliquez sur des boutons, remplissez des formulaires et extrayez du contenu dynamique.
if (req.method === "POST" && url.pathname === "/interact") {
  const result = await firecrawl.scrape("https://www.amazon.com", {
    formats: ["markdown"],
  });
  const scrapeId = result.metadata?.scrapeId;

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

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

Exécuter localement

FIRECRAWL_API_KEY=fc-YOUR-API-KEY deno run --allow-net --allow-env main.ts

Déployez

Installez la CLI de Deno Deploy (deployctl), puis déployez :
deployctl deploy --project=my-scraper main.ts
Définissez la variable d’environnement dans le dashboard de Deno Deploy ou via la CLI :
deployctl env set FIRECRAWL_API_KEY=fc-YOUR-API-KEY --project=my-scraper

Essayez-le

curl -X POST https://my-scraper.deno.dev/search \
  -H "Content-Type: application/json" \
  -d '{"query": "firecrawl web scraping"}'

Prochaines étapes

Documentation Search

Effectuez une recherche sur le web et obtenez le contenu complet de la page

Documentation Scrape

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

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.