Zapier+DiffHook

Web scraping Zapier — raspe um site, direcione para um Zap

O DiffHook cuida da raspagem e do diff. Seu Zap recebe um webhook assinado com o texto extraído e o fragmento HTML cru toda vez que a página muda — sem passo Code, sem add-on de scraping de terceiros.

O caminho típico para raspar no Zapier é Schedule by Zapier + Webhooks GET + Code by Zapier + acrobacias de Formatter. Esse stack é frágil: o Zapier trunca corpos de resposta acima de 6 MB, regex num passo Code envelhece mal e cada polling queima uma task. O DiffHook tira fetch, renderização e diff de dentro do Zapier — o Zap só recebe mudanças reais e campos já extraídos.

Fluxo

Raspe no Zapier em 5 passos

Trigger Catch Hook padrão. Sem passo Code, sem app premium, sem sustos de tamanho de resposta.

01

Comece um Zap com um Catch Hook

Escolha Webhooks by Zapier → Catch Hook. O Zapier entrega uma URL única — ela vira o destino de entrega no DiffHook.

02

Descreva o scrape num monitor DiffHook

Defina type como html_css, informe a URL e o seletor CSS que isola o elemento que importa. Ligue include_html: true quando o Zap precisar também do markup cru além do texto extraído.

03

Registre o monitor com o Catch Hook

POST em /v1/monitors com a config do scrape, um intervalo e a URL do Zapier como entrega webhook. O DiffHook assume imediatamente polling, cache e detecção de diff.

04

Verifique e filtre dentro do Zapier

Adicione um passo Filter que compara o header X-DiffHook-Signature com seu signing secret. Filtre opcionalmente por extracted_text ou url, para que um único Zap cubra vários monitores.

05

Mapeie os campos nas ações a jusante

O Zapier parseia o body JSON sozinho, então extracted_text, previous_value, current_value e url aparecem como campos nomeados. Jogue-os em uma mensagem do Slack, uma linha do Google Sheets ou um registro do Airtable.

Exemplo de API

Raspe para um Zap num POST

include_html: true envia o fragmento HTML cru junto do texto extraído — útil quando o Zap precisa parsear uma lista de itens.

POST /v1/monitors
POST https://api.diffhook.com/v1/monitors
Authorization: Bearer $DIFFHOOK_API_KEY
Content-Type: application/json

{
  "type": "html_css",
  "url": "https://directory.example.com/listings",
  "css_selector": "article.listing",
  "include_html": true,
  "interval_seconds": 900,
  "deliveries": [
    {
      "type": "webhook",
      "url": "https://hooks.zapier.com/hooks/catch/000000/scrape123/"
    }
  ]
}

Fluxo importável

Copie um Zap pronto

Zap template com Catch Hook, Filter de verificação de assinatura, passo Formatter que limpa o texto e destino Slack. Importe, cole suas chaves, publique.

Perguntas frequentes

Web scraping Zapier — perguntas comuns

Preciso do Code by Zapier para lidar com o payload raspado?
Não. O DiffHook envia um corpo JSON plano com extracted_text e, se você ligar, current_html. O Zapier parseia o JSON sozinho, então cada campo fica como variável nomeada nos passos a jusante. Mantenha um passo Filter para a verificação de assinatura e está pronto — o passo Code premium é opcional.
O DiffHook consegue raspar páginas renderizadas em JavaScript para meu Zap?
Sim. Defina type como html_rendered e render.engine como playwright ou puppeteer. O DiffHook roda o navegador, espera a página terminar de carregar e aplica o seletor CSS no DOM renderizado. O Zap só vê o diff pós-render — o custo do render mora no DiffHook, não no seu plano Zap.
E quanto a paginação e scroll infinito?
Dois padrões limpos. Padrão A — um monitor por página paginada (p=1, p=2, p=3), todos apontando para o mesmo Catch Hook. Padrão B — habilite scroll_to_bottom num monitor renderizado para que o Playwright carregue a lista inteira antes do snapshot. Ambos deixam o corpo do Zap pequeno e previsível.
Como evito runs duplicados do Zap quando o diff é minúsculo?
Aperte o seletor CSS para o DiffHook vigiar só o bloco significativo (card de preço, linha de produto, linha do changelog) e não a página inteira. Para fontes ruidosas, adicione um passo Filter no Zap que só avança quando o tamanho do diff ultrapassa um limite.
Existe limite de tamanho do payload raspado?
O DiffHook limita o payload HTML em 256 KB por entrega, o que cobre a grande maioria dos casos scrape-para-Zap. Para páginas maiores, mantenha o seletor CSS apertado — raramente você precisa do documento inteiro, só da seção que muda.

Fluxos relacionados

Também ótimos com o DiffHook

Raspe no Zapier sem encostar no Code by Zapier

Scraper gerenciado, texto extraído + HTML cru, Catch Hooks assinados com HMAC, plano gratuito. Um POST para começar.