Passer au contenu principal

Prérequis

Installer le SDK

Ajoutez firecrawl à votre mix.exs :
defp deps do
  [
    {:firecrawl, "~> 1.0"}
  ]
end
Configurez votre clé API dans config/config.exs :
config :firecrawl, api_key: System.get_env("FIRECRAWL_API_KEY")

Rechercher sur le web

{:ok, result} = Firecrawl.search_and_scrape(query: "firecrawl web scraping", limit: 5)

for entry <- result.body["data"]["web"] do
  IO.puts("#{entry["title"]} - #{entry["url"]}")
end

Scraping une page

{:ok, result} = Firecrawl.scrape_and_extract_from_url(url: "https://example.com")
IO.puts(result.body["data"]["markdown"])
{
  "success": true,
  "data": {
    "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
    "metadata": {
      "title": "Example Domain",
      "sourceURL": "https://example.com"
    }
  }
}

Interact avec une page

Scrapez une page, puis continuez à l’utiliser via l’API de session de navigateur.
{:ok, scrape} = Firecrawl.scrape_and_extract_from_url(
  url: "https://www.amazon.com",
  formats: ["markdown"]
)

scrape_id = get_in(scrape.body, ["data", "metadata", "scrapeId"])

# Utiliser l'API REST pour interact (basé sur des prompts)
headers = [
  {"Authorization", "Bearer #{Application.get_env(:firecrawl, :api_key)}"},
  {"Content-Type", "application/json"}
]

{:ok, _} = Req.post(
  "https://api.firecrawl.dev/v2/scrape/#{scrape_id}/interact",
  json: %{prompt: "Search for iPhone 16 Pro Max"},
  headers: headers
)

{:ok, response} = Req.post(
  "https://api.firecrawl.dev/v2/scrape/#{scrape_id}/interact",
  json: %{prompt: "Click on the first result and tell me the price"},
  headers: headers
)

IO.inspect(response.body)

# Arrêter la session
Req.delete(
  "https://api.firecrawl.dev/v2/scrape/#{scrape_id}/interact",
  headers: headers
)

Variable d’environnement

Définissez FIRECRAWL_API_KEY plutôt que de la coder en dur :
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Étapes suivantes

Documentation scraping

Toutes les options de scraping, y compris les formats, les actions et les proxies

Documentation recherche

Recherchez sur le web et obtenez le contenu complet de la page

Documentation Interact

Cliquez, remplissez des formulaires et extrayez du contenu dynamique

Référence du SDK Elixir

Référence complète du SDK avec crawl, cartographie, extraction par lot et plus encore