Passer au contenu principal

Prérequis

Installer le SDK

bun add @mendable/firecrawl-js
Ajoutez votre clé API à .env :
FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Rechercher sur le Web

Bun dispose d’un serveur HTTP intégré. Créez index.ts :
import Firecrawl from "@mendable/firecrawl-js";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });

Bun.serve({
  port: 3000,
  async fetch(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 });
  },
});

console.log("Server running on port 3000");
Exécutez ceci :
bun run index.ts

Scraper une page

Ajoutez une route /scrape sur le même serveur :
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

Utilisez 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 { url: targetUrl } = await req.json();

  const result = await firecrawl.scrape(targetUrl, { 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' });

  await firecrawl.stopInteraction(scrapeId);

  return Response.json({ output: response.output });
}

Utilisation dans un script

Utilisez Firecrawl dans un script Bun autonome :
import Firecrawl from "@mendable/firecrawl-js";

const app = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });
const results = await app.search("firecrawl web scraping", { limit: 5 });
console.log(results);
bun run search.ts

Étapes suivantes

Documentation Scrape

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

Documentation recherche

Recherche sur le web et obtention du contenu intégral des pages

Documentation Interact

Cliquer, remplir des formulaires et extraire du contenu dynamique

Référence du SDK Node

Référence complète du SDK avec crawl, cartographie, extraction par lot, et plus encore