← Tutoriais
CONSTRUIR · DADOS · 10 MIN

Extraia dados de uma página web para JSON

Uma página cheia de produtos bagunçados, e um arquivo JSON limpo com o nome e o preço de cada um. Sem scraper feito à mão. Você descreve para o Firecrawl em uma frase e ele devolve estruturado.

Para
quem precisa de dados de uma página web sem programar um scraper
Precisa
Node, uma chave de API do Firecrawl e saber guardá-la sem vazar
Tempo
10 minutos

Fazer scraping de uma página à mão é frágil: você escreve seletores, a página muda, quebra. O Firecrawl inverte isso: você diz em linguagem comum quais dados quer e um agente lê a página e devolve em JSON. Vamos puxar uma lista de produtos de uma loja, mas funciona para qualquer dado: preços, anúncios, diretórios, perfis.

PÁGINA BAGUNÇADA menus, ruído, HTML FIRECRAWL você descreve JSON LIMPO só seus campos
Sem seletores, sem scraper. Você nomeia os campos que quer; o agente lê a página e os devolve.

Por que isso aguenta onde um scraper normal não aguenta: um scraper feito à mão depende da estrutura exata da página, então no dia em que renomeiam uma classe, ele quebra. O agente lê a página do jeito que você leria, pelo significado. Mude o layout e ele ainda acha o preço, porque você pediu "o preço", não div.col-3 > span.amount.

1. Instale a CLI e faça login

O Firecrawl tem uma ferramenta de linha de comando. Instale com o Node e autentique:

npm install -g firecrawl-cli

Confira se está pronto. Se faltar a chave, o comando te guia para criá-la em firecrawl.dev (o plano gratuito te dá créditos de sobra para começar). Guarde num .env como qualquer outra chave, nunca no código: está explicado em sua primeira chave de API, sem vazar.

firecrawl --status
● Authenticated
  Credits: 500,000 remaining

2. Primeiro, veja o que tem na página

Antes de extrair qualquer coisa, faça scraping da página para ver o conteúdo limpo. Isso devolve a página em markdown, sem menus, sem ruído:

firecrawl scrape https://example-shop.com/products -o page.md

Abra o page.md e confira se os dados que você quer estão ali. Se aparecem, o agente vai conseguir extraí-los.

3. Peça os dados como JSON

Agora a parte boa. O comando agent recebe uma frase com o que você quer e a URL, e devolve JSON. --wait espera ele terminar e --pretty deixa legível:

firecrawl agent "extract each product with its name and price" \
  --urls https://example-shop.com/products \
  --wait --pretty -o products.json

E o products.json sai assim, pronto para usar em qualquer lugar:

[
  { "name": "Nordic Chair",  "price": 89.00 },
  { "name": "Oak Table",     "price": 240.00 },
  { "name": "Floor Lamp",    "price": 65.50 }
]

4. Quer mais precisão? Dê um schema

A frase basta para a maioria dos casos. Se você precisa que os campos saiam exatos toda vez (mesmos nomes, mesmos tipos), passe um schema com --schema:

firecrawl agent "extract the products" \
  --urls https://example-shop.com/products \
  --schema '{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}}' \
  --wait --pretty -o products.json

Quando algo quebra

Os tropeços de sempre, e a solução de cada um:

Agora tente isto

Mesmo comando, mais alcance:

O que você acabou de fazer

Você transformou uma página web em dados que pode usar, sem escrever ou manter um scraper. O que você pediu foram produtos, mas o mesmo comando puxa os preços de um concorrente, os anúncios de um diretório, ou qualquer dado que apareça numa página. O trabalho deixou de ser programar o scraper; agora é só dizer o que você quer.

ACHOU ÚTIL? PEGUE O PRÓXIMO

Deixe seu e-mail e eu te aviso quando o próximo build sair, com o código e os prompts que usei. Sem spam.

Mais tutoriais ↗