Skip to content

Documentar os 11 raspadores no README e expor todos eles na API pública - #42

Draft
bdcdo wants to merge 2 commits into
mainfrom
claude/readme-raspadores-zbgcya
Draft

Documentar os 11 raspadores no README e expor todos eles na API pública#42
bdcdo wants to merge 2 commits into
mainfrom
claude/readme-raspadores-zbgcya

Conversation

@bdcdo

@bdcdo bdcdo commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Motivação

O pacote tem 11 raspadores, mas nem a documentação nem a superfície pública refletiam isso.

No README:

  • A lista de fontes na abertura citava 7 raspadores, omitindo CFM, SaudeLegis, ANS e ANVISA.
  • Seis raspadores não tinham seção de uso — Presidência, Câmara, Senado, IPEA, CAPES e CFM apareciam só como uma linha na tabela, sem exemplo, sem filtros e sem colunas retornadas.
  • O nome do parâmetro de busca varia por fonte (pesquisa, texto, termo, assunto) e isso não estava documentado em lugar nenhum — só era descobrível lendo o código de cada scraper.

No código:

  • raspe.scrapers.__all__ listava apenas ScraperFolha, então from raspe.scrapers import ScraperCFM só funcionava importando o submódulo direto.
  • scraper_manager.scraper() mapeava 5 fontes das 11. scraper("CFM") levantava ValueError mesmo com raspe.cfm() existindo e funcionando.

Mudanças

Documentação (README.md)

  • Lista de abertura cobre os 11 raspadores, agrupados por tema (legislação, saúde, pesquisa acadêmica, imprensa).
  • Tabela de fontes separada entre raspadores HTTP e raspadores com navegador, com coluna nova indicando o parâmetro de busca de cada fonte, aviso sobre a variação do nome e nota sobre paginas= e busca por lista de termos (coluna termo_busca).
  • Novas seções de uso para Presidência, Câmara, Senado, IPEA, CAPES e CFM, com filtros extras (ano, tipo_materia, uf, revogada, numero) e colunas retornadas.
  • Colunas retornadas também para SaudeLegis e NYT, que tinham seção mas não listavam o schema de saída.
  • Seção nova sobre scraper_manager.scraper(), para escolher a fonte por nome.
  • Índice dos notebooks de exemplo em notebooks/.

Todos os 11 raspadores passam a ter seção própria com exemplo executável.

Exports (src/)

  • raspe.scrapers reexporta as 12 classes de raspador (as 11 fontes + a base ScraperDatalegis). Importá-las não exige o extra browser: o Playwright já era carregado sob demanda, dentro de _import_playwright(), e não no import do módulo.
  • scraper_manager.scraper() cobre as 11 fontes — adicionados CFM, FOLHA, NYT, SAUDELEGIS, ANS, ANVISA. O retorno passou de BaseScraper para AbstractScraper, que é o ancestral comum dos raspadores HTTP e dos baseados em Playwright, e a mensagem de erro passa a enumerar as fontes válidas.

Testes

tests/test_scraper_manager.py foi de 6 para 16 casos: cobertura por fonte, repasse de kwargs (api_key, headless), mensagem de erro, e um teste que trava o mapping contra raspe.__all__ — para o mapping não voltar a ficar defasado quando um raspador novo entrar.

210 passed — cobertura total 84.65% (gate: 80%)

Hooks isort, pylint e flake8 passam nos arquivos alterados; mypy e pyright rodados à mão (os hooks apontam para um .venv/ que não existe neste ambiente) reportam zero erros.

Os nomes de parâmetros, filtros e colunas documentados no README foram extraídos de _set_query_base() e _parse_page() de cada scraper.

🤖 Generated with Claude Code

https://claude.ai/code/session_01X6nwdnXab21r12wbRT2VuQ

claude added 2 commits August 16, 2026 20:10
A lista de fontes na abertura do README citava apenas 7 raspadores,
omitindo CFM, SaudeLegis, ANS e ANVISA. Seis raspadores também não
tinham nenhuma seção de uso: Presidência, Câmara, Senado, IPEA, CAPES
e CFM apareciam só como uma linha na tabela de fontes.

- Lista de abertura agora cobre os 11 raspadores, agrupados por tema
  (legislação, saúde, pesquisa acadêmica, imprensa).
- Tabela de fontes separada entre raspadores HTTP e raspadores com
  navegador, com o nome do parâmetro de busca de cada fonte — que varia
  entre `pesquisa`, `texto`, `termo` e `assunto`.
- Novas seções de uso para Presidência, Câmara, Senado, IPEA, CAPES e
  CFM, com filtros extras (`ano`, `tipo_materia`, `uf`, `revogada`,
  `numero`) e colunas retornadas.
- Colunas retornadas documentadas também para SaudeLegis e NYT.
- Índice dos notebooks de exemplo em `notebooks/`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6nwdnXab21r12wbRT2VuQ
Dois pontos em que a superfície pública ficou para trás dos raspadores
que o pacote realmente tem:

- `raspe.scrapers.__all__` listava apenas `ScraperFolha`, então
  `from raspe.scrapers import ScraperCFM` só funcionava importando o
  submódulo direto. Agora as 12 classes são reexportadas, incluindo as
  baseadas em Playwright — importá-las não exige o extra `browser`,
  porque o Playwright já era carregado sob demanda.
- `scraper_manager.scraper()` mapeava 5 fontes, e `scraper("CFM")`
  levantava `ValueError` mesmo com `raspe.cfm()` existindo. Adicionados
  CFM, FOLHA, NYT, SAUDELEGIS, ANS e ANVISA, fechando as 11 fontes.
  O retorno passou de `BaseScraper` para `AbstractScraper`, que é o
  ancestral comum dos raspadores HTTP e dos Playwright, e a mensagem de
  erro agora enumera as fontes válidas.

Testes: cobertura por fonte em `scraper()`, repasse de kwargs e um teste
que trava o mapping contra `raspe.__all__`, para o mapping não voltar a
ficar defasado quando um raspador novo entrar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6nwdnXab21r12wbRT2VuQ
@bdcdo bdcdo changed the title docs: documentar os 11 raspadores disponíveis no README Documentar os 11 raspadores no README e expor todos eles na API pública Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants