Documentation Index
Fetch the complete documentation index at: https://firecrawl-mog-search-exclude-include-domains.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
npm install @mendable/firecrawl-js
Ajoutez votre clé API dans .env :
FIRECRAWL_API_KEY=fc-YOUR-API-KEY
Créez src/pages/api/search.ts :
import type { APIRoute } from "astro";
import Firecrawl from "@mendable/firecrawl-js";
const firecrawl = new Firecrawl({
apiKey: import.meta.env.FIRECRAWL_API_KEY,
});
export const POST: APIRoute = async ({ request }) => {
const { query } = await request.json();
const results = await firecrawl.search(query, { limit: 5 });
return new Response(JSON.stringify(results), {
headers: { "Content-Type": "application/json" },
});
};
Ou effectuez une recherche lors de la requête dans une page rendue côté serveur (src/pages/search.astro) :
---
import Firecrawl from "@mendable/firecrawl-js";
const firecrawl = new Firecrawl({
apiKey: import.meta.env.FIRECRAWL_API_KEY,
});
const query = Astro.url.searchParams.get("q");
let results = [];
if (query) {
const searchData = await firecrawl.search(query, { limit: 5 });
results = searchData.web || [];
}
---
<html>
<body>
<h1>Search Results</h1>
{results.length > 0 ? (
<ul>
{results.map((r) => (
<li><a href={r.url}>{r.title}</a></li>
))}
</ul>
) : (
<p>Pass ?q= to search the web</p>
)}
</body>
</html>
Créez src/pages/api/scrape.ts:
import type { APIRoute } from "astro";
import Firecrawl from "@mendable/firecrawl-js";
const firecrawl = new Firecrawl({
apiKey: import.meta.env.FIRECRAWL_API_KEY,
});
export const POST: APIRoute = async ({ request }) => {
const { url } = await request.json();
const result = await firecrawl.scrape(url);
return new Response(JSON.stringify(result), {
headers: { "Content-Type": "application/json" },
});
};
Ou lancez le scraping au moment de la requête dans une page rendue côté serveur (src/pages/scrape.astro) :
---
import Firecrawl from "@mendable/firecrawl-js";
const firecrawl = new Firecrawl({
apiKey: import.meta.env.FIRECRAWL_API_KEY,
});
const target = Astro.url.searchParams.get("url");
let markdown = null;
if (target) {
const result = await firecrawl.scrape(target);
markdown = result.markdown;
}
---
<html>
<body>
<h1>Contenu extrait</h1>
{markdown ? <pre>{markdown}</pre> : <p>Passez ?url= pour scraper une page</p>}
</body>
</html>
Créez src/pages/api/interact.ts:
import type { APIRoute } from "astro";
import Firecrawl from "@mendable/firecrawl-js";
const firecrawl = new Firecrawl({
apiKey: import.meta.env.FIRECRAWL_API_KEY,
});
export const POST: APIRoute = async () => {
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",
});
await firecrawl.stopInteraction(scrapeId);
return new Response(JSON.stringify({ output: response.output }), {
headers: { "Content-Type": "application/json" },
});
};
Documentation Scrape
Toutes les options de scrape, y compris les formats, les actions et les proxies
Documentation recherche
Effectuez une recherche sur le web et obtenez le contenu complet de la page
Documentation Interact
Cliquez, remplissez des formulaires et extrayez du contenu dynamique
Référence du Node SDK
Référence complète du SDK avec crawl, cartographie, extraction par lot et plus encore