Passer au contenu principal
Intégrez Firecrawl à Gemini de Google pour des applications d’IA alimentées par des données web.

Configuration

npm install @mendable/firecrawl-js @google/genai
Créez le fichier .env :
FIRECRAWL_API_KEY=votre_clé_firecrawl
GEMINI_API_KEY=votre_clé_gemini
Remarque : Si vous utilisez Node < 20, installez dotenv et ajoutez import 'dotenv/config' à votre code.

Extraction + Résumé

Cet exemple illustre un workflow simple : extraire un site web et résumer le contenu avec Gemini.
import FirecrawlApp from '@mendable/firecrawl-js';
import { GoogleGenAI } from '@google/genai';

const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });

const scrapeResult = await firecrawl.scrape('https://firecrawl.dev', {
    formats: ['markdown']
});

console.log('Longueur du contenu extrait :', scrapeResult.markdown?.length);

const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: `Résumez : ${scrapeResult.markdown}`,
});

console.log('Résumé :', response.text);

Analyse du contenu

Cet exemple montre comment analyser le contenu d’un site web à l’aide des capacités de conversation multi‑tour de Gemini.
import FirecrawlApp from '@mendable/firecrawl-js';
import { GoogleGenAI } from '@google/genai';

const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });

const scrapeResult = await firecrawl.scrape('https://news.ycombinator.com/', {
    formats: ['markdown']
});

console.log('Longueur du contenu extrait :', scrapeResult.markdown?.length);

const chat = ai.chats.create({
    model: 'gemini-2.5-flash'
});

// Demander les 3 principales stories sur Hacker News
const result1 = await chat.sendMessage({
    message: `D'après ce contenu du site Hacker News, quelles sont les 3 principales stories en ce moment ?\n\n${scrapeResult.markdown}`
});
console.log('Top 3 des stories :', result1.text);

// Demander les 4ème et 5ème stories sur Hacker News
const result2 = await chat.sendMessage({
    message: `Maintenant, quelles sont les 4ème et 5ème principales stories sur Hacker News d'après le même contenu ?`
});
console.log('4ème et 5ème stories :', result2.text);

Extraction structurée

Cet exemple montre comment extraire des données structurées en utilisant le mode JSON de Gemini à partir de contenu de site web extrait.
import FirecrawlApp from '@mendable/firecrawl-js';
import { GoogleGenAI, Type } from '@google/genai';

const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });

const scrapeResult = await firecrawl.scrape('https://stripe.com', {
    formats: ['markdown']
});

console.log('Longueur du contenu scrapé :', scrapeResult.markdown?.length);

const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: `Extraire les informations de l'entreprise : ${scrapeResult.markdown}`,
    config: {
        responseMimeType: 'application/json',
        responseSchema: {
            type: Type.OBJECT,
            properties: {
                name: { type: Type.STRING },
                industry: { type: Type.STRING },
                description: { type: Type.STRING },
                products: {
                    type: Type.ARRAY,
                    items: { type: Type.STRING }
                }
            },
            propertyOrdering: ['name', 'industry', 'description', 'products']
        }
    }
});

console.log('Informations de l'entreprise extraites :', response?.text);
Pour plus d’exemples, consultez la documentation de Gemini.