Documentation Index
Fetch the complete documentation index at: https://firecrawl-docs-improve-deep-research-headings.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Haz scraping de páginas individuales, rastrea sitios completos y mapea URL desde tu aplicación de Elixir. El SDK valida todos los parámetros en tiempo de ejecución con NimbleOptions y usa Req para HTTP, así que obtienes errores claros por errores tipográficos y opciones no válidas antes de realizar cualquier solicitud.
Cada función tiene una variante con bang (!) que lanza una excepción en lugar de devolver tuplas {:error, ...}.
Añade firecrawl a tu lista de dependencias en mix.exs y configura tu clave de API:
# Añadir a mix.exs
{:firecrawl, "~> 1.0"}
# Luego configura tu API key en config.exs
config :firecrawl, api_key: "fc-YOUR-API-KEY"
O pasa la clave de API en cada solicitud:
Firecrawl.scrape_and_extract_from_url([url: "https://example.com"], api_key: "fc-YOUR-API-KEY")
- Obtén una clave de API en firecrawl.dev
- Configura la clave de API en tu aplicación o pásala como opción a cualquier función.
# Hacer scraping de un sitio web:
{:ok, scrape_result} = Firecrawl.scrape_and_extract_from_url(
url: "https://firecrawl.dev",
formats: ["markdown", "html"]
)
IO.inspect(scrape_result.body)
# Rastrear un sitio web:
{:ok, crawl_result} = Firecrawl.crawl_urls(
url: "https://firecrawl.dev",
limit: 100,
scrape_options: [
formats: ["markdown", "html"]
]
)
IO.inspect(crawl_result.body)
Haz scraping de una URL con scrape_and_extract_from_url. Devuelve el contenido de la página como datos estructurados, incluidos markdown, metadatos y cualquier otro formato que solicites.
# Hacer scraping de un sitio web:
{:ok, result} = Firecrawl.scrape_and_extract_from_url(url: "https://firecrawl.dev", formats: ["markdown", "html"])
IO.inspect(result.body)
Para rastrear un sitio web, usa crawl_urls. Recibe la URL inicial y parámetros opcionales, como el límite de páginas, los dominios permitidos y el formato de salida.
{:ok, result} = Firecrawl.crawl_urls(url: "https://docs.firecrawl.dev", limit: 5)
IO.inspect(result.body)
Inicia un trabajo de rastreo y devuelve el ID del trabajo sin bloquear:
{:ok, job} = Firecrawl.crawl_urls(url: "https://docs.firecrawl.dev", limit: 10)
crawl_id = job.body["id"]
IO.puts(crawl_id)
Consultar el estado de un rastreo
Consulta el estado de un trabajo de rastreo con get_crawl_status:
{:ok, status} = Firecrawl.get_crawl_status("<crawl-id>")
IO.inspect(status.body)
Cancela un trabajo de rastreo con cancel_crawl:
{:ok, result} = Firecrawl.cancel_crawl("<crawl-id>")
IO.puts("Cancelled: #{inspect(result.body)}")
Usa map_urls para generar una lista de URL de un sitio web:
{:ok, result} = Firecrawl.map_urls(url: "https://firecrawl.dev", limit: 10)
IO.inspect(result.body)
Busca en la web y, opcionalmente, haz scraping de los resultados:
{:ok, result} = Firecrawl.search_and_scrape(query: "firecrawl web scraping", limit: 5)
IO.inspect(result.body["data"]["web"])
Haz scraping de varias URL en un único trabajo por lotes:
{:ok, result} = Firecrawl.scrape_and_extract_from_urls(
urls: ["https://firecrawl.dev", "https://docs.firecrawl.dev"],
formats: ["markdown"]
)
IO.inspect(result.body)
Inicia una tarea de extracción de datos con agentes:
{:ok, job} = Firecrawl.start_agent(
prompt: "Extract all product names and prices",
urls: ["https://example.com/products"]
)
job_id = job.body["id"]
# Consultar el estado
{:ok, status} = Firecrawl.get_agent_status(job_id)
IO.inspect(status.body)
Inicia sesiones de navegador en la nube y ejecuta código de forma remota.
{: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)
Guarda y reutiliza el estado del navegador (cookies, localStorage, etc.) entre sesiones:
{:ok, session} = Firecrawl.create_browser_session(
ttl: 600,
profile: [
name: "my-profile",
save_changes: true
]
)
# Listar sesiones activas
{:ok, sessions} = Firecrawl.list_browser_sessions(status: "active")
IO.inspect(sessions.body)
# Cerrar una sesión
{:ok, _} = Firecrawl.delete_browser_session(session_id)
Instancias autogestionadas
Para usar una instancia autogestionada de Firecrawl, pasa la opción base_url:
{:ok, result} = Firecrawl.scrape_and_extract_from_url(
[url: "https://example.com"],
base_url: "https://your-instance.com/v2"
)
Las funciones sin bang devuelven {:ok, response} o {:error, exception}. Las variantes con bang lanzan una excepción en caso de error. NimbleOptions valida todos los parámetros antes de enviar la solicitud, detectando de inmediato errores tipográficos, campos obligatorios ausentes y errores 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
# O usar la variante bang para lanzar un error:
response = Firecrawl.scrape_and_extract_from_url!(url: "https://example.com")
IO.inspect(response.body)
Todas las funciones disponibles
| Función | Descripción |
|---|
scrape_and_extract_from_url | Hace scraping de una sola URL |
scrape_and_extract_from_urls | Realiza una extracción por lotes de varias URL |
crawl_urls | Rastrea un sitio web |
get_crawl_status | Comprueba el estado del trabajo de rastreo |
get_crawl_errors | Obtiene los errores del trabajo de rastreo |
get_active_crawls | Lista los rastreos activos |
cancel_crawl | Cancela un trabajo de rastreo |
map_urls | Mapea las URL de un sitio web |
search_and_scrape | Busca y hace scraping de los resultados |
start_agent | Inicia una tarea de extracción con agente |
get_agent_status | Comprueba el estado del trabajo del agente |
cancel_agent | Cancela un trabajo del agente |
create_browser_session | Crea una sesión del navegador |
execute_browser_code | Ejecuta código en una sesión del navegador |
list_browser_sessions | Lista las sesiones del navegador |
delete_browser_session | Elimina una sesión del navegador |
get_batch_scrape_status | Comprueba el estado de la extracción por lotes |
get_batch_scrape_errors | Obtiene los errores de la extracción por lotes |
cancel_batch_scrape | Cancela una extracción por lotes |
get_credit_usage | Obtiene los créditos restantes |
Todas las funciones anteriores tienen una variante bang (!) (por ejemplo, scrape_and_extract_from_url!) que lanza una excepción en lugar de devolver tuplas de error.
Para consultar la documentación completa de la API, consulta hexdocs.pm/firecrawl.