Curso
O Firecrawl é um novo tipo de rastreador web otimizado para fluxos de trabalho com IA. Ele permite que desenvolvedores façam scraping de páginas, sites inteiros ou até da web como um todo. É ideal para eliminar a complexidade do scraping tradicional, com recursos como suporte a JavaScript, conversão automática para markdown e integração com frameworks populares de LLM.
Neste artigo, além de descrever as principais funcionalidades do Firecrawl, trago dicas práticas avançadas, integrações com o ecossistema e alguns casos de uso reais para você começar a colocar a mão na massa.
O que é o Firecrawl?
Firecrawl é um rastreador web com IA desenvolvido pela Mendable.ai. É um serviço de API que rastreia sites e os converte em dados limpos e prontos para LLM, como markdown, JSON etc.
É uma abordagem orientada por IA que entende o contexto da página e extrai o conteúdo principal de forma clara — diferente de scrapers tradicionais como BeautifulSoup ou Puppeteer, que rastreiam a web “no escuro” e muitas vezes retornam dados ruidosos. Ele é capaz de transformar sites inteiros em markdown limpo ou dados estruturados, sendo ideal para tarefas com LLMs.
O Firecrawl tem 3 modos principais, que explico em detalhes a seguir. No geral, você usará o scrape mode para extrair uma única URL, o crawl mode para varrer um site inteiro e o map mode para descoberta de URLs.
Principais recursos do Firecrawl
O que diferencia o Firecrawl é que ele dispensa sitemap graças ao mecanismo inteligente de navegação; lida com JavaScript pesado e conteúdo dinâmico; gera saídas limpas em markdown, HTML, JSON, screenshots e mais, oferecendo muita flexibilidade; possui proxy, anti-bot e cache integrados; suporta processamento em lote e concorrência para trabalhos em grande escala; é altamente personalizável — você pode excluir tags, rastrear com headers customizados, definir profundidade de crawl e muito mais; integra-se bem com frameworks de LLM como LangChain, LlamaIndex e CrewAI; e, claro, é pronto para uso corporativo, permitindo definir rate limit, controles de concorrência e confiabilidade.
Como configurar o Firecrawl
A parte legal do Firecrawl é que você consegue colocá-lo para rodar bem rápido. Veja os passos principais para instalar no seu ambiente:
Configuração da chave de API
- Crie uma conta em firecrawl.dev para obter sua chave de API.
- Instale a biblioteca cliente em Python:
pip install firecrawl
E, se você usa LangChain, use
pip install firecrawl-py
- Armazene a chave com segurança usando variáveis de ambiente:
import os
from firecrawl import FirecrawlApp
# Defina sua chave de API do Firecrawl como variável de ambiente para segurança
api_key = os.getenv('FIRECRAWL_API_KEY')
# Crie uma instância da classe FirecrawlApp com sua chave de API
app = FirecrawlApp(api_key=api_key)
Exemplo básico de scraping
Você pode fazer seu primeiro scraping com o método .scrape_url():
response = app.scrape_url(url='example.com', formats=['markdown'])
print(response)
Esse código recupera o conteúdo principal da página firecrawl.dev em formato markdown.
Entendendo os modos e endpoints do Firecrawl
O Firecrawl tem três modos principais que definem o quão amplo você quer fazer o scraping. Nesta seção, vou passar por cada um.
Scrape mode
O scrape mode aponta para URLs individuais. É ideal para extrair detalhes de produtos ou artigos de notícia. O parâmetro llm_extract permite extração baseada em esquema. O que você precisa fazer é definir o schema do JSON final, iniciar a configuração e começar o scraping:
from firecrawl import JsonConfig
from pydantic import BaseModel
# Defina a estrutura de dados esperada para o schema de extração em JSON
class ExtractSchema(BaseModel):
company_mission: str
supports_sso: bool
is_open_source: bool
is_in_yc: bool
# Defina a configuração de JSON e ative o modo de extração por LLM
json_config = JsonConfig(
extractionSchema=ExtractSchema.model_json_schema(),
mode="llm-extraction",
pageOptions={"onlyMainContent": True}
)
# Faça o scrape da URL, extraia os dados e formate para JSON
llm_extraction_result = app.scrape_url(
'https://firecrawl.dev',
formats=["json"],
json_options=json_config
)
print(llm_extraction_result)
Aqui vai outro exemplo de scraping de uma única URL, agora com extração baseada em seletores:
# Tire um screenshot do topo da página de overview
scrape_result = app.scrape_url('firecrawl.dev',
formats=['markdown', 'html', "screenshot"],
actions=[
{"type": "wait", "milliseconds": 3000},
{"type": "click", "selector": "h1"},
{"type": "wait", "milliseconds": 3000},
{"type": "scrape"},
{"type": "screenshot"}
],
)
print(scrape_result)
Esse script abre o site, espera 3000 milissegundos, clica no primeiro seletor h1, espera novamente e, então, faz o scrape e salva um screenshot da página atual. Se ocorrer timeout, tente aumentar os tempos de espera junto com o parâmetro de timeout.
Crawl mode
O crawl mode permite varrer um site inteiro, incluindo todas as subpáginas acessíveis, sem precisar de sitemap. Ele retorna um ID de job para acompanhar o progresso e suporta a recuperação de metadados quando você quer coletar informações extras como headers e timestamps, controle de taxa para ajustar a velocidade de acesso ao site e configurações de profundidade recursiva para decidir quantos níveis de links seguir. As etapas de um crawler são:
- Primeiro, o crawler abre a URL informada
- Faz o scraping da página
- Todos os hyperlinks para subpáginas são analisados e recebem crawlers separados
- Os passos se repetem até alcançar o máximo definido.
Exemplo de um crawler usando requests em Python:
import requests
url = "https://api.firecrawl.dev/v1/crawl"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
data = {
"url": "https://docs.firecrawl.dev", # site a ser rastreado
"limit": 100, # número máximo de itens
"scrapeOptions": {
"formats": ["markdown", "html"] # formatos de saída
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())
Esse código instrui o Firecrawl a buscar até 100 páginas de https://docs.firecrawl.dev, retornar cada página em Markdown e HTML, e então imprimir o resultado.
Se você quer aprender mais sobre APIs, confira nosso curso Introduction to APIs in Python, o code-along Working with APIs in Python e o tutorial Mastering Python APIs: A Comprehensive Guide to Building and Using APIs in Python.
Map mode
O Map permite informar um site e recuperar instantaneamente todas as URLs do domínio, de forma extremamente rápida. É por isso que existe o endpoint /map: ele transforma uma única URL em um sitemap completo, sendo ideal quando você precisa que o usuário final selecione os links a extrair, descobrir rapidamente todas as URLs do site, focar em páginas sobre um tema específico usando o parâmetro de busca ou restringir o crawl a páginas determinadas.
Observação: como esse endpoint prioriza a velocidade, pode não capturar todos os links.
# Mapear um site:
map_result = app.map_url('https://firecrawl.dev')
print(map_result)
Esse código instrui o Firecrawl a descobrir todos os links na página https://firecrawl.dev e listá-los para você.
Aplicações reais do Firecrawl
O Firecrawl é versátil para várias tarefas, como vimos, o que o torna muito útil em cenários reais. Ele é excelente para extrair dados de boards de vagas ou portais de notícias, compilando listas atualizadas ou artigos para análise, ou para treinar modelos de machine learning de previsão. Você também pode fazer análise de sentimento a partir de reviews coletados — por exemplo, juntando avaliações de clientes em e-commerces ou sites como a Amazon — para analisar o sentimento e embasar decisões de negócio.
Isso pode ser potencializado com monitoramento de preços, acompanhando valores de produtos em várias plataformas para identificar tendências ou disparar alertas de queda de preço. Além disso, você pode usar o Firecrawl para extrair documentação técnica e treinar ou alimentar agentes de IA, ampliando sua base de conhecimento, ou para ingestão de dados em pipelines de IA multiagente, como faz o CAMEL-AI.
Ele também pode fornecer dados web estruturados para sistemas de RAG (retrieval-augmented generation), melhorando a performance do modelo e reduzindo alucinações.
Técnicas avançadas e boas práticas
Para tirar o máximo do Firecrawl, seguem algumas técnicas avançadas e boas práticas:
-
Extraia dados estruturados para seu LLM usando o endpoint
/extractpara retornar dados baseados em um prompt ou schema, já que LLMs lidam melhor com esse tipo de dado do que com HTML bruto. -
Trate erros com tentativas automáticas, implementando lógica de retry com backoff exponencial para lidar com erros transitórios da API.
-
Otimize a performance usando o crawling assíncrono do Firecrawl para iniciar varreduras grandes sem bloquear sua aplicação. Isso é ideal para apps e serviços web.
-
Filtre os crawls com parâmetros como
max_depthouexcludepara limitar a subdomínios ou tipos de página específicos. Isso ajuda a reduzir dados desnecessários. -
Use ferramentas Python para validar e limpar os dados coletados, como balancear, deletar valores nulos e muito mais. pandas, numpy, seaborn e outras ajudam bastante nessas tarefas. Se quiser aprender mais sobre limpeza de dados, confira nosso curso Cleaning Data in Python.
Firecrawl vs. ferramentas tradicionais de scraping
O Firecrawl tem várias vantagens que o colocam entre as melhores opções na maioria dos casos e o fazem se destacar em relação a ferramentas tradicionais como Scrapy, BeautifulSoup e Puppeteer. Ele lida facilmente com conteúdo renderizado em JavaScript, enquanto ferramentas como o BeautifulSoup exigem soluções adicionais como Selenium e, às vezes, inspeção manual. Possui rotação de proxy e gerenciamento de rate limits embutidos, reduzindo o tempo de setup em comparação com as configurações manuais do Scrapy, que são demoradas. Além disso, os recursos de extração por LLM do Firecrawl fornecem dados estruturados — algo ausente na maioria das ferramentas tradicionais.
No entanto, as ferramentas tradicionais podem ser preferíveis em casos específicos, como quando você quer execução local — o que permite ao BeautifulSoup rodar localmente sem dependências de API, algo atraente para quem evita serviços em nuvem. A facilidade e eficiência de implementação às vezes vêm com custo em personalização extrema, enquanto o Scrapy oferece controle fino para pipelines de scraping altamente customizáveis.
Integrações e suporte ao ecossistema
O Firecrawl integra-se bem com muitos frameworks de LLM, com forte suporte de ecossistema, o que amplia sua utilidade em fluxos de trabalho de IA. Você pode integrá-lo ao LangChain usando o módulo FirecrawlLoader, que facilita a entrada de dados da web em pipelines do LangChain. Ou usá-lo com o LlamaIndex, já que o FirecrawlReader suporta o carregamento de dados web para indexação e consulta. O Firecrawl também é uma ferramenta nativa para rastrear sites no framework do CrewAI e é compatível com vários outros, como Flowise, Dify e CAMEL-AI.
Planos e limites de uso
O Firecrawl oferece diversos planos de preços, conforme o caso de uso, para atender a diferentes necessidades. Garanta conferir a página oficial de preços do Firecrawl, caso haja mudanças.
- Free: inclui um número limitado de créditos e é ideal para testes e projetos pequenos.
- Hobby: oferece mais créditos para indivíduos ou times pequenos com baixo custo.
- Standard, Growth, Enterprise: fornecem mais créditos, limites de taxa maiores e recursos avançados como RPM (requests por minuto) customizado.
O sistema de créditos funciona assim:
|
Plano |
Créditos |
Recursos |
Indicado para |
|
Free |
Limitados |
Scraping básico, testes |
Iniciantes, projetos pequenos |
|
Hobby |
Moderados |
Mais créditos, recursos padrão |
Desenvolvedores individuais |
|
Standard |
Altos |
Limites de taxa maiores, recursos avançados |
Times em crescimento |
|
Growth |
Muito altos |
Escalável, opções customizadas |
Projetos grandes |
|
Enterprise |
Ilimitados |
RPM customizado, suporte dedicado |
Alto volume, uso corporativo |
Conclusão
O Firecrawl muda o jogo na extração de dados da web, especialmente para aplicações de IA. Ao converter sites em dados limpos, estruturados e prontos para LLM, ele ajuda desenvolvedores a construir soluções mais inteligentes. Sua facilidade de uso, conjunto robusto de recursos e integrações extensas fazem dele uma ótima escolha para tarefas que vão de monitoramento de preços a fluxos de trabalho com RAG.
Experimente o plano gratuito do Firecrawl para testar suas capacidades. Participe da comunidade no GitHub e no Discord do Firecrawl para novidades, dicas e suporte.
Com o Firecrawl, dados da web deixam de ser obstáculo e viram um ativo poderoso para suas inovações em IA.
Como próximo passo, recomendo o curso e o code-along a seguir:
Trabalho em sistemas de IA acelerados que permitem inteligência de ponta com pipelines de ML federados em dados descentralizados e cargas de trabalho distribuídas. A Mywork se concentra em modelos grandes, processamento de fala, visão computacional, aprendizado por reforço e topologias avançadas de ML.
FAQs
Por que estou recebendo erro de timeout?
Primeiro, verifique se você está usando corretamente sua chave de API; depois, depure se o site está encontrando corretamente os elementos que você quer extrair.
O Firecrawl usa apenas busca com IA?
Não. Você pode usar diferentes tipos de busca, como baseada em seletores e baseada em LLM.
O Firecrawl lida com sites com muito conteúdo em JavaScript?
Sim, o Firecrawl é otimizado até para sites dinâmicos com JavaScript pesado.
Quando eu consideraria usar uma ferramenta tradicional como o BeautifulSoup em vez do Firecrawl?
O BeautifulSoup é local, gratuito e funciona bem para scraping simples de HTML.
Posso testar o Firecrawl de graça?
Sim. Há um limite de requisições por minuto no plano de testes.



