AWS Lambda
Utilisez Firecrawl avec AWS Lambda pour rechercher, extraire et interagir avec des données web dans des fonctions sans serveur.
- Un compte AWS avec accès à Lambda
- Une clé API Firecrawl — obtenez-en une gratuitement
mkdir firecrawl-lambda && cd firecrawl-lambda
npm init -y
npm install firecrawlCréez le fichier index.mjs avec un gestionnaire de recherche :
import { Firecrawl } from "firecrawl";
const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });
export async function handler(event) {
const body = JSON.parse(event.body || "{}");
if (body.action === "search") {
const results = await firecrawl.search(body.query, { limit: 5 });
return {
statusCode: 200,
body: JSON.stringify(results),
};
}
return { statusCode: 400, body: JSON.stringify({ error: "Unknown action" }) };
}Ajoutez une action scrape dans le même gestionnaire :
if (body.action === "scrape") {
const result = await firecrawl.scrape(body.url);
return {
statusCode: 200,
body: JSON.stringify(result),
};
}Ajoutez une action interact pour contrôler une session de navigateur en direct — pour cliquer sur des boutons, remplir des formulaires et extraire du contenu dynamique :
if (body.action === "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",
});
await firecrawl.stopInteraction(scrapeId);
return {
statusCode: 200,
body: JSON.stringify({ output: response.output }),
};
}Créez le package et déployez avec l’AWS CLI :
zip -r function.zip index.mjs node_modules/
aws lambda create-function \
--function-name firecrawl-scraper \
--runtime nodejs20.x \
--handler index.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::YOUR_ACCOUNT:role/lambda-role \
--environment Variables="{FIRECRAWL_API_KEY=fc-YOUR-API-KEY}" \
--timeout 60Définissez le délai d’expiration de Lambda sur au moins 30 secondes. Le scraping de pages dynamiques et les sessions Interact peuvent prendre plus de temps que le délai d’expiration par défaut de 3 secondes.
Documentation de recherche
Effectuez une recherche sur le web et obtenez le contenu complet des pages
Documentation scraper
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 Node SDK
Référence complète du SDK avec crawl, cartographie, extraction par lot et plus encore