Pular para o conteúdo principal
Integre o Firecrawl ao Gemini, da Google, para aplicativos de IA com dados da web.

Configuração

npm install @mendable/firecrawl-js @google/genai
Crie o arquivo .env:
FIRECRAWL_API_KEY=sua_chave_firecrawl
GEMINI_API_KEY=sua_chave_gemini
Observação: Se estiver usando Node < 20, instale dotenv e adicione import 'dotenv/config' ao seu código.

Extrair + Resumir

Este exemplo demonstra um fluxo de trabalho simples: extrair um site e resumir o conteúdo usando o 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('Comprimento do conteúdo extraído:', scrapeResult.markdown?.length);

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

console.log('Resumo:', response.text);

Análise de conteúdo

Este exemplo mostra como analisar o conteúdo de sites usando os recursos de conversação em múltiplas etapas do 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('Tamanho do conteúdo extraído:', scrapeResult.markdown?.length);

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

// Perguntar pelas 3 principais notícias no Hacker News
const result1 = await chat.sendMessage({
    message: `Com base neste conteúdo do site Hacker News, quais são as 3 principais notícias agora?\n\n${scrapeResult.markdown}`
});
console.log('3 Principais Notícias:', result1.text);

// Perguntar pela 4ª e 5ª notícias no Hacker News
const result2 = await chat.sendMessage({
    message: `Agora, quais são a 4ª e 5ª principais notícias no Hacker News do mesmo conteúdo?`
});
console.log('4ª e 5ª Notícias:', result2.text);

Extração estruturada

Este exemplo demonstra como extrair dados estruturados usando o modo JSON do Gemini a partir de conteúdo de sites rastreados.
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('Comprimento do conteúdo extraído:', scrapeResult.markdown?.length);

const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: `Extrair informações da empresa: ${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('Informações da empresa extraídas:', response?.text);
Para mais exemplos, consulte a documentação do Gemini.