Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-extrator-noticia
Community node do n8n que extrai título, conteúdo e metadados de páginas de
notícia a partir do HTML, combinando JSON-LD schema.org e Mozilla Readability.
Por que existe
Portais sem feed RSS, ou com RSS truncado, exigem baixar a página e extrair o
conteúdo. Nenhuma técnica isolada cobre todos os casos:
- Uns poucos portais expõem
articleBodycompleto no JSON-LD (mais confiável) - A maioria só entrega o conteúdo no HTML (Readability resolve)
- Alguns renderizam por JavaScript (nenhuma das duas resolve)
Este node tenta as duas, escolhe o melhor resultado, e sinaliza o terceiro
caso em vez de devolver lixo silenciosamente.
Instalação
Settings → Community Nodes → Install → n8n-nodes-extrator-noticia
Ou, em Docker sem npm publish, veja a seção "Deploy em Docker Swarm" abaixo.
Uso
Schedule Trigger → HTTP Request (a URL da matéria) → Extrator de Notícia
No campo HTML, aponte para o corpo da resposta do HTTP Request
(normalmente {{ $json.data }}). Preencha URL de Origem sempre que possível:
o Readability usa ela para resolver links e imagens relativas.
Saída
| Campo | Descrição |
|---|---|
sucesso |
false quando nenhum método achou conteúdo |
metodo |
json-ld, readability ou nenhum |
titulo |
Título da matéria |
texto |
Corpo em texto puro |
html |
Corpo em HTML (só se a opção estiver ligada) |
resumo |
Excerpt ou description |
autor |
Assinatura, quando disponível |
publicadoEm |
Data de publicação, quando disponível |
site |
Nome do veículo |
idioma |
Idioma declarado |
caracteres |
Tamanho do texto extraído |
suspeita |
true quando o texto veio curto demais |
motivo |
Explicação de falha ou suspeita |
tempoMs |
Tempo de processamento |
O campo suspeita
É o mais útil na prática. Quando true, a extração tecnicamente funcionou, mas
devolveu pouco texto. Quase sempre significa que o conteúdo é renderizado por
JavaScript e não está no HTML entregue pelo servidor.
Use um IF node depois:
Extrator → IF (suspeita = true) → fallback Puppeteer
(false) → segue o fluxo normal
Ao Falhar
- Marcar e Continuar (padrão): emite o item com
sucesso: false. Recomendado
para lotes, porque uma matéria problemática não derruba as outras. - Descartar Item: não emite o item.
- Lançar Erro: interrompe a execução.
Deploy em Docker Swarm sem publicar no npm
Todos os serviços n8n precisam do pacote, não só o editor. Com os serviços
fixados em node.role == manager, um bind mount no manager resolve:
# no manager
mkdir -p /opt/n8n-custom/node_modules
cd /opt/n8n-custom/node_modules
# copie a pasta buildada do pacote para cá
E no stack, em todos os serviços n8n (editor, webhook, worker, mcp):
volumes:
- /opt/rss-data:/data/rss:ro
- /opt/n8n-custom:/home/node/.n8n/custom
Alternativa mais limpa a médio prazo: publicar num registry npm privado e usar
o mecanismo normal de community nodes.
Nota sobre task runners
Community nodes rodam no processo do n8n, não no sandbox do task runner.
Isso significa que este node funciona sem NODE_FUNCTION_ALLOW_EXTERNAL, sem
imagem customizada do n8nio/runners e sem mexer no n8n-task-runners.json.
O contrapartida é que ele roda com o mesmo acesso do n8n, incluindo credenciais.
O código são ~250 linhas sem chamadas de rede próprias, auditáveis em minutos.
Licença
MIT