Skip to content

[NOVO] Portal: Congresso em Foco #51

Description

@Yagoas

📋 Informações do Portal

Portal: Congresso em Foco
URL: https://www.congressoemfoco.com.br
Categoria: Nacional
Tipo de conteúdo: Notícias gerais

🎯 Objetivo

Criar um novo scraper completo para extrair conteúdo de notícias do portal.

✅ Campos a serem extraídos:

  • Título - Título principal da notícia
  • Descrição - Subtítulo ou resumo da notícia
  • Corpo - Texto completo da matéria
  • Tags - Categorias e etiquetas associadas

🔍 Análise do Portal

Estrutura da Página Inicial

  • Identificar seção de notícias: Onde estão os links das notícias principais?
  • Padrão de URLs: Como são estruturadas as URLs das notícias?
  • Filtros necessários: Que tipos de páginas devem ser ignoradas?

Estrutura das Páginas de Notícia

  • Seletor do título: Qual elemento contém o título principal?
  • Seletor da descrição: Existe subtítulo/resumo? Qual elemento?
  • Seletor do corpo: Onde está o texto principal da notícia?
  • Seletor das tags: Onde estão as categorias/etiquetas?

🧪 URLs de Teste

Forneça 5-10 URLs reais de notícias do portal para desenvolvimento e teste:

URLs da Página Inicial

URLs de Notícias para Teste

  1. https://www.congressoemfoco.com.br/noticia/112741/domingos-neto-assume-relatoria-da-lei-dos-planos-de-saude
  2. https://www.congressoemfoco.com.br/noticia/112729/camara-aprova-regulamentacao-da-profissao-de-motorista-de-ambulancia
  3. https://www.congressoemfoco.com.br/noticia/112737/felipe-nunes-vitoria-politica-e-expectativas-explicam-melhora-de-lula
  4. https://www.congressoemfoco.com.br/noticia/112735/quaest-rejeicao-a-anistia-cresce-e-maioria-considera-penas-justas
  5. https://www.congressoemfoco.com.br/noticia/112734/briga-entre-vereadores-interrompe-sessao-em-sena-madureira-ac

🛠️ Implementação Necessária

1. Adicionar Portal ao Banco de Dados

make bash
python add_portal.py "congressoemfoco" "https://www.congressoemfoco.com.br"

2. Criar Spider (spiders/congressoEmFoco.py)

  • Herdar de BaseSpider
  • Implementar allow_url() com filtragem adequada
  • Coletar apenas URLs da página inicial (sem crawling recursivo)
  • Testar coleta de URLs válidos

3. Criar Play (plays/congressoEmFoco.py)

  • Herdar de BasePlay
  • Implementar método match() para identificar URLs do portal
  • Implementar extração de título
  • Implementar extração de descrição
  • Implementar extração de corpo
  • Implementar extração de tags
  • Retornar EntryItem com todos os campos

4. Adicionar Comandos Makefile

  • make crawl_congressoemfoco - para coleta de URLs
  • make scrape_congressoemfoco - para extração de conteúdo

🧪 Testes e Validação

Teste do Spider

  • Coleta URLs apenas da página inicial
  • URLs coletados são realmente de notícias
  • Não coleta URLs de outras seções (vídeos, podcasts, etc.)
  • Filtragem funciona corretamente

Teste do Play

  • Extrai título corretamente em todas as URLs de teste
  • Extrai descrição quando disponível
  • Extrai corpo completo da notícia
  • Extrai tags quando disponível
  • Não há erros de timeout ou seletores quebrados
  • Funciona com diferentes tipos de notícia

Teste de Integração

  • Pipeline completo funciona: make crawl_congressoemfoco + make scrape_congressoemfoco
  • Dados são salvos corretamente no banco PostgreSQL
  • Logs não mostram erros críticos

📚 Recursos e Referências

  • Tutorial de criação do zero: TUTORIAL_CRIACAO_DO_ZERO.md - Guia completo passo-a-passo
  • Tutorial de adaptação: TUTORIAL_SPIDERS_PLAYS.md - Para adaptar scrapers existentes
  • Exemplos de referência:
    • gazetaDoPovo.py (spider com boa filtragem)
    • metropoles.py (play com extração completa)
  • Base classes: spiders/base.py e plays/base.py

🔧 Checklist de Implementação

Preparação

  • Portal adicionado ao banco de dados
  • URLs de teste coletadas e validadas
  • Estrutura HTML analisada no navegador

Spider

  • Arquivo spiders/congressoemfoco.py criado
  • Herda de BaseSpider
  • Implementa allow_url() com boa filtragem
  • Coleta apenas URLs da página inicial
  • Testado com URLs reais

Play

  • Arquivo plays/congressoemfoco.py criado
  • Herda de BasePlay
  • Implementa método match()
  • IDENTIFICA seletores para título, descrição, corpo e tags
  • TESTA extração de todos os 4 campos
  • VALIDA com todas as URLs de teste
  • Retorna EntryItem com dados corretos

Integração

  • Comandos adicionados ao Makefile
  • Pipeline completo testado
  • Dados salvos no banco corretamente

📝 Informações Técnicas

Seletores Identificados

/* Título */
h1

/* Descrição/Subtítulo */
h2.asset__summary

/* Corpo */
div.asset__content div.html-content

/* Tags */
div.asset__tags-links a.asset__tags-link

Padrões de URL

https://congressoemfoco.com.br/noticia/{id}/{slug}

Observações Especiais

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions