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.
Faça scraping de páginas individuais, rastreie sites inteiros e mapeie URLs na sua aplicação Elixir. O SDK valida todos os parâmetros em tempo de execução com NimbleOptions e usa Req para HTTP, para que você receba mensagens de erro claras para erros de digitação e opções inválidas antes que qualquer requisição seja feita.
Toda função tem uma variante com bang (!) que gera uma exceção em caso de erro, em vez de retornar tuplas {:error, ...}.
Adicione firecrawl à sua lista de dependências no mix.exs e configure sua chave de API:
# Adicione ao mix.exs
{:firecrawl, "~> 1.0"}
# Em seguida, configure sua API key em config.exs
config :firecrawl, api_key: "fc-YOUR-API-KEY"
Ou passe a chave de API em cada requisição:
Firecrawl.scrape_and_extract_from_url([url: "https://example.com"], api_key: "fc-YOUR-API-KEY")
- Obtenha uma chave de API em firecrawl.dev
- Defina a chave de API na configuração do seu aplicativo ou passe-a como opção para qualquer função.
# Fazer scraping de um site:
{:ok, scrape_result} = Firecrawl.scrape_and_extract_from_url(
url: "https://firecrawl.dev",
formats: ["markdown", "html"]
)
IO.inspect(scrape_result.body)
# Rastrear um site:
{:ok, crawl_result} = Firecrawl.crawl_urls(
url: "https://firecrawl.dev",
limit: 100,
scrape_options: [
formats: ["markdown", "html"]
]
)
IO.inspect(crawl_result.body)
Fazendo scraping de uma URL
Faça o scraping de uma única URL com scrape_and_extract_from_url. Ela retorna o conteúdo da página como dados estruturados, incluindo markdown, metadados e quaisquer outros formatos que você solicitar.
# Fazer scraping de um site:
{:ok, result} = Firecrawl.scrape_and_extract_from_url(url: "https://firecrawl.dev", formats: ["markdown", "html"])
IO.inspect(result.body)
Para rastrear um site, use crawl_urls. Ele aceita a URL inicial e parâmetros opcionais, como limite de páginas, domínios permitidos e formato de resultado.
{:ok, result} = Firecrawl.crawl_urls(url: "https://docs.firecrawl.dev", limit: 5)
IO.inspect(result.body)
Inicie um job de rastreamento e receba o ID do job sem bloqueio:
{:ok, job} = Firecrawl.crawl_urls(url: "https://docs.firecrawl.dev", limit: 10)
crawl_id = job.body["id"]
IO.puts(crawl_id)
Verificando o status do rastreamento
Consulte o status de um job de rastreamento com get_crawl_status:
{:ok, status} = Firecrawl.get_crawl_status("<crawl-id>")
IO.inspect(status.body)
Cancele um job de rastreamento com cancel_crawl:
{:ok, result} = Firecrawl.cancel_crawl("<crawl-id>")
IO.puts("Cancelled: #{inspect(result.body)}")
Use map_urls para gerar uma lista de URLs a partir de um site:
{:ok, result} = Firecrawl.map_urls(url: "https://firecrawl.dev", limit: 10)
IO.inspect(result.body)
Faça uma busca na web e, opcionalmente, faça scraping dos resultados:
{:ok, result} = Firecrawl.search_and_scrape(query: "firecrawl web scraping", limit: 5)
IO.inspect(result.body["data"]["web"])
Realize o scraping de várias URLs em um único job em lote:
{:ok, result} = Firecrawl.scrape_and_extract_from_urls(
urls: ["https://firecrawl.dev", "https://docs.firecrawl.dev"],
formats: ["markdown"]
)
IO.inspect(result.body)
Inicie uma tarefa de extração de dados com agente:
{:ok, job} = Firecrawl.start_agent(
prompt: "Extract all product names and prices",
urls: ["https://example.com/products"]
)
job_id = job.body["id"]
# Consultar status
{:ok, status} = Firecrawl.get_agent_status(job_id)
IO.inspect(status.body)
Inicie sessões de navegador na nuvem e execute código remotamente.
{:ok, session} = Firecrawl.create_browser_session(ttl: 600)
session_id = session.body["id"]
cdp_url = session.body["cdpUrl"]
live_view_url = session.body["liveViewUrl"]
{:ok, result} = Firecrawl.execute_browser_code(session_id,
code: ~s(await page.goto("https://news.ycombinator.com")\ntitle = await page.title()\nprint(title)),
language: "python"
)
IO.inspect(result.body)
Salve e reutilize o estado do navegador (cookies, localStorage etc.) entre sessões:
{:ok, session} = Firecrawl.create_browser_session(
ttl: 600,
profile: [
name: "my-profile",
save_changes: true
]
)
Listar & encerrar sessões
# Listar sessões ativas
{:ok, sessions} = Firecrawl.list_browser_sessions(status: "active")
IO.inspect(sessions.body)
# Encerrar uma sessão
{:ok, _} = Firecrawl.delete_browser_session(session_id)
Instâncias auto-hospedadas
Para usar uma instância auto-hospedada do Firecrawl, passe a opção base_url:
{:ok, result} = Firecrawl.scrape_and_extract_from_url(
[url: "https://example.com"],
base_url: "https://your-instance.com/v2"
)
Funções sem bang retornam {:ok, response} ou {:error, exception}. As variantes com bang levantam uma exceção em caso de erro. O NimbleOptions valida todos os parâmetros antes de a requisição ser enviada, detectando imediatamente erros de digitação, campos obrigatórios ausentes e erros de tipo.
case Firecrawl.scrape_and_extract_from_url(url: "https://example.com") do
{:ok, response} -> IO.inspect(response.body)
{:error, error} -> IO.puts("Error: #{Exception.message(error)}")
end
# Ou utilize a variante com bang para lançar um erro:
response = Firecrawl.scrape_and_extract_from_url!(url: "https://example.com")
IO.inspect(response.body)
Todas as funções disponíveis
| Função | Descrição |
|---|
scrape_and_extract_from_url | Faz scraping de uma única URL |
scrape_and_extract_from_urls | Faz extração em lote de várias URLs |
crawl_urls | Faz o rastreamento de um site |
get_crawl_status | Verifica o status do job de rastreamento |
get_crawl_errors | Obtém os erros do job de rastreamento |
get_active_crawls | Lista os rastreamentos ativos |
cancel_crawl | Cancela um job de rastreamento |
map_urls | Mapeia URLs em um site |
search_and_scrape | Busca e faz scraping dos resultados |
start_agent | Inicia uma tarefa de extração com agente |
get_agent_status | Verifica o status do job do agente |
cancel_agent | Cancela um job do agente |
create_browser_session | Cria uma sessão de navegador |
execute_browser_code | Executa código em uma sessão de navegador |
list_browser_sessions | Lista as sessões de navegador |
delete_browser_session | Exclui uma sessão de navegador |
get_batch_scrape_status | Verifica o status da extração em lote |
get_batch_scrape_errors | Obtém os erros da extração em lote |
cancel_batch_scrape | Cancela uma extração em lote |
get_credit_usage | Obtém os créditos restantes |
Todas as funções acima têm uma variante com bang (!) (por exemplo, scrape_and_extract_from_url!) que gera uma exceção em vez de retornar tuplas de erro.
Para ver a documentação completa da API, consulte hexdocs.pm/firecrawl.