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.
pip install fastapi uvicorn firecrawl-py
Adicione sua chave de API ao arquivo .env:
FIRECRAWL_API_KEY = fc-YOUR-API-KEY
Crie main.py:
import os
from fastapi import FastAPI
from pydantic import BaseModel
from firecrawl import Firecrawl
app = FastAPI()
firecrawl = Firecrawl( api_key = os.environ[ "FIRECRAWL_API_KEY" ])
class SearchRequest ( BaseModel ):
query: str
limit: int = 5
class ScrapeRequest ( BaseModel ):
url: str
class InteractRequest ( BaseModel ):
scrape_id: str
prompt: str
@app.post ( "/search" )
async def search ( req : SearchRequest):
results = firecrawl.search(req.query, limit = req.limit)
return [{ "title" : r.title, "url" : r.url} for r in results.web]
@app.post ( "/scrape" )
async def scrape ( req : ScrapeRequest):
result = firecrawl.scrape(req.url)
return { "markdown" : result.markdown, "metadata" : result.metadata}
@app.post ( "/interact/start" )
async def interact_start ( req : ScrapeRequest):
result = firecrawl.scrape(req.url, formats = [ "markdown" ])
return { "scrape_id" : result.metadata.scrape_id}
@app.post ( "/interact" )
async def interact ( req : InteractRequest):
response = firecrawl.interact(req.scrape_id, prompt = req.prompt)
return { "output" : response.output}
@app.post ( "/interact/stop" )
async def interact_stop ( req : InteractRequest):
firecrawl.stop_interaction(req.scrape_id)
return { "status" : "stopped" }
uvicorn main:app --reload
# Fazer uma busca na web
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{"query": "firecrawl web scraping", "limit": 5}'
# Fazer scraping de uma página
curl -X POST http://localhost:8000/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
# Iniciar uma sessão interativa e enviar prompts
curl -X POST http://localhost:8000/interact/start \
-H "Content-Type: application/json" \
-d '{"url": "https://www.amazon.com"}'
O FastAPI gera automaticamente uma documentação interativa em http://localhost:8000/docs.
Para obter melhor concorrência sob carga, use AsyncFirecrawl:
from firecrawl import AsyncFirecrawl
async_firecrawl = AsyncFirecrawl( api_key = os.environ[ "FIRECRAWL_API_KEY" ])
@app.post ( "/scrape-async" )
async def scrape_async ( req : ScrapeRequest):
result = await async_firecrawl.scrape(req.url)
return { "markdown" : result.markdown}
Documentação de scraping Todas as opções de scraping, incluindo formatos, ações e proxies
Documentação de busca Faça uma busca na web e obtenha o conteúdo completo da página
Documentação de interação Clique, preencha formulários e extraia conteúdo dinâmico
Referência do SDK Python Referência completa do SDK, com rastreamento, map, async e muito mais