Cobertura estadual: onde achar cada diário, e o que falta

Levantamento feito em 19/09/2026, de dentro do container, pela VPN brasileira — que é exatamente o caminho que a coleta usa. Um endereço que responde aqui responde para o coletor; um que não responde aqui, não responde para ele também, por mais que abra no seu navegador.

O que foi medido: para cada uma das 27 UFs, o endereço do Diário Oficial do Executivo e o do Tribunal de Contas foram chamados, e a resposta foi classificada (código HTTP, tipo de conteúdo, presença de link de PDF). O que NÃO foi medido: o layout interno de cada diário. Saber que uma origem responde não é saber que o parser_config dela está escrito.


1. Resposta curta

CamadaTemosDe
Judiciário estadual (TJ + TJM)3030 — completo, via DJEN
Diário Oficial do Executivo227 — SP e RO
Tribunal de Contas327+ — SP, RO e AM
Municipal (Querido Diário)22 UFs, 391 cidades—
FederalDOU, STF, TCU, DJEN—
### ⚠️ A página de vendas promete mais do que existe site/landing.html anuncia "Tribunal de Contas de todos os 26 estados e o DF", gera uma linha de "Diário Oficial do Estado" para cada UF, e soma 241 fontes. O catálogo real tem 2 DOEs e 3 TCEs. A cobertura judicial (DOU, 27 TJs, 6 TRFs, 24 TRTs, superiores) é verdadeira e é a maior parte do valor. O que não se sustenta é a promessa estadual de Executivo e Controle. Corrigir a página antes de vender, ou vender só o que a §2 lista como pronto.

2. O que está coletando hoje

FonteChaveComoMedido
DOE São Paulodoe:SPAPI própriaem produção desde agosto
DOE Rondôniadoe:ROPDF, URL dedutível da data833 atos em 18/09
TCE São Paulotce:SPPDF, adaptador próprioem produção
TCE Rondôniatce:ROPDF, descoberta com dia na regex90 atos em 18/09
TCE Amazonastce:AMPDF, descoberta com data por extenso193 atos em 18/09
Municípios de SCdom:sc-cigaPDF, descoberta2.577 atos, 143 municípios

Os três últimos entraram sem uma linha de código nova — só configuração, pelo caminho descrito no manual de fontes § 2.


3. Diários Oficiais do Executivo — as 27 UFs

✅ coletando · 🟡 responde, falta mapear o layout · 🔴 bloqueio de rede/WAF

UFEndereçoSituaçãoO que foi observado
ACdiario.ac.gov.br🟡Responde (8 KB). Nenhum PDF na home — o link do dia está atrás de formulário
ALimprensaoficial.al.gov.br🟡Responde. PDFs na home são institucionais, não o diário
AMdiario.imprensaoficial.am.gov.br🟡Rota /portal/edicoes/download/0; a variante por data devolve HTML
APdiofe.portal.ap.gov.br🟡Página grande (>220 KB), sem PDF direto
BAdool.egba.ba.gov.br🔴Certificado TLS rejeitado
CEdoe.seplag.ce.gov.br🔴Conexão recusada pelo proxy
DFdodf.df.gov.br🔴HTTP 202 — desafio de bot. Listagem por epoch existe, mas volta vazia
ESioes.dio.es.gov.br🟡Rota /portal/visualizacoes/diario_oficial
GOdiariooficial.abc.go.gov.br🔴TLS encerra a conexão
MAdiariooficial.ma.gov.br🟡Busca em /busca/
MGjornalminasgerais.mg.gov.br🟡Responde, sem PDF na home
MSdiariooficial.ms.gov.br🟡Melhor candidato. PDFs diretos em assets.imprensaoficial.ms.gov.br/.../DO12276_11_09_2026.pdf. O ?data= é ignorado — falta achar a rota que filtra
MTiomat.mt.gov.br🟡Mesma plataforma do AM
PAioepa.com.br🟡Responde; PDFs da home são institucionais
PBauniao.pb.gov.br🟡O caminho testado deu 404 — achar o correto
PEcepe.com.br🟡Rota /diario-oficial
PIdiariooficial.pi.gov.br🔴TLS encerra a conexão
PRdocumentos.dioe.pr.gov.br🔴Certificado TLS rejeitado
RJioerj.com.br🟡Portal institucional; o diário tem outro caminho
RNdiariooficial.rn.gov.br🟡O caminho testado deu 404
ROdiof.ro.gov.br✅…/data/uploads/{ano}/{mês}/DOE-{dd-mm-aaaa}.pdf
RRimprensaoficial.rr.gov.br🟡Responde com 363 bytes — provável redirecionamento por JS
RSdiariooficial.rs.gov.br🟡2,7 KB — aplicação de página única
SCportal.doe.sea.sc.gov.br🟡SPA versionada (/v2.44.07/), redirecionamento por JS
SEsegrase.se.gov.br🔴Conexão recusada pelo proxy
SPdoe.sp.gov.br✅API própria
TOdiariooficial.to.gov.br🟡2,9 KB — aplicação de página única

4. Tribunais de Contas — as 27 UFs

Vários estados têm dois: o TCE (estado) e o TCM (municípios) — caso de BA, GO, PA e CE. A tabela traz o que foi encontrado; onde o TCM apareceu primeiro, está anotado.

UFEndereço do diárioSituaçãoObservado
ACsistemas.tceac.tc.br/diario/🟡Sistema próprio
ALdoe.tceal.tc.br · consultadoe.tceal.tc.br🟡Raiz devolve 964 bytes — carrega por JS
AMdoe.tceam.tc.br✅WordPress; nome do arquivo com data por extenso
APtce.ap.gov.br🔴Certificado TLS rejeitado
BAtce.ba.gov.br/component/cdsdiario/🟡Componente Joomla
CEtce.ce.gov.br/diario-oficial/…🟡Responde
DFtc.df.gov.br🔴Certificado TLS rejeitado
EStcees.tc.br🟡Responde, sem link de diário na home
GOportal.tce.go.gov.br/diario-eletronico-de-contas1🟡Caminho identificado
MAdiario.apps.tcema.tc.br/publicacao/🟡Aplicação dedicada — bom candidato
MGtce.mg.gov.br🟡7 PDFs na home, mistos
MSportal-services.tce.ms.gov.br/portal-services/diario-oficial/…🟡Cheira a API REST — vale meia hora
MTtce.mt.gov.br/diario🟡246 bytes — carrega por JS
PAtcmpa.tc.br/diario-oficial-eletronico/🟡É o TCM
PBtce.pb.gov.br🟡Sem link de diário na home
PEtce.pe.gov.br🔴Certificado TLS rejeitado
PItcepi.tc.br/cidadao/diario-oficial/🟡Caminho identificado
PRwww1.tce.pr.gov.br🟡Sem link de diário na home
RJtcerj.tc.br🔴Responde, mas a rota do diário devolve erro
RNdiario.tce.rn.gov.br🟡SPA com #/ — a API por trás deve existir
ROtcero.tc.br/diario-oficial/✅Listagem do ano inteiro; dia filtrado na regex
RRtce.rr.gov.br🔴Conexão recusada pelo proxy
RSportal.tce.rs.gov.br🟡O caminho testado deu 404
SCconsulta.tce.sc.gov.br/Diario/🔴Akamai/mPulse — proteção de bot
SEtcese.tc.br/diarioeletronico/🟡204 bytes — carrega por JS
SPdoe.tce.sp.gov.br✅Adaptador próprio
TOtceto.tc.br🟡Sem link de diário na home

5. O plano, em ordem de custo/benefício

Passo 1 — os 🟡 que já têm PDF à vista (1 a 3 h cada)

MS (Executivo) e MA, MS, GO, PI (TCE) são os mais próximos. O roteiro é o mesmo que resolveu RO e AM:

  1. Abrir o endereço num navegador de verdade, com o inspetor de rede aberto, e navegar até o diário de ontem.
  2. Anotar a URL do PDF e a URL da página que lista as edições do dia.
  3. Ver se a URL do PDF é dedutível da data:
  4. é → só url_template, como o RO;
  5. não é → descoberta, com link_regex apontando para o arquivo. Se a listagem não filtrar por data, ponha o dia dentro da própria regex com {data:%Y-%-m-%-d} (como o TCE-RO) ou por extenso com {data:%B} (como o TCE-AM).
  6. Cadastrar em Fontes → Cadastrar fonte, motor PDF.
  7. Afinar em Heurística: analisar um dia, olhar quantos atos saíram e se a ficha veio preenchida. O botão de sugestão com IA propõe os marcadores a partir de amostras.
  8. Ligar a fonte e conferir no painel de Saúde no dia seguinte.

Passo 2 — os 🟡 que carregam por JavaScript

AL, MT, RN, SE, RR, RS, TO, SC (Executivo). São aplicações de página única: o HTML vem vazio e os dados chegam depois, por uma chamada de API. Essa chamada costuma ser pública e estável.

Como achar, sem programar: abrir o site no Chrome, F12 → aba Network → filtrar por Fetch/XHR → navegar até o diário. A chamada que devolve a lista de edições aparece ali, com a URL completa. Copie e me mande — a partir dela o cadastro é o mesmo do Passo 1, e frequentemente a fonte vira api_generica, que é ainda mais simples que PDF.

Passo 3 — os 🔴 de TLS (BA, GO, PI, PR, AP, DF-TCE, PE-TCE)

São sete origens cujo servidor tem a cadeia de certificados mal configurada — erro do lado deles, não nosso. Já existe tratamento por host exato em clipping/http.py (_HOSTS_SEM_CADEIA_COMPLETA), feito para o STF, que tem o mesmo defeito.

O conserto é acrescentar o host àquela lista. Não faço isso em lote e sem conferir: cada exceção afrouxa a verificação de TLS para aquele domínio, e isso merece ser decidido host a host, olhando o certificado com openssl s_client -showcerts. Diga quais UFs interessam e eu confiro uma a uma.

Passo 4 — os 🔴 de WAF (DF-Executivo, CE, SE, RR-TCE, SC-TCE, RJ-TCE, TSE)

Exigem navegador com execução de JavaScript para passar pelo desafio. Não é conserto de configuração — é infraestrutura nova: um container com Chrome headless, que hoje não existe neste servidor. É a única categoria em que não consigo avançar sem essa decisão sua.

Custo: um serviço a mais no docker-compose.yml, memória e um coletor que fala com ele. Vale se essas UFs forem comerciais; não vale por completude.


6. O que fazer com a página de vendas, enquanto isso

Três caminhos, nesta ordem de honestidade:

  1. Ajustar o texto para a cobertura real: judiciário nacional completo, DOU, e Executivo/Controle em SP, RO e AM. É o que eu faria.
  2. Vender por UF sob demanda: "seu estado em até X dias úteis" — o Passo 1 torna isso plausível para boa parte dos 🟡.
  3. Manter a promessa e correr atrás. Só funciona com prazo e alguém dedicado.

O que não dá é ir a mercado com a página atual e o catálogo atual, porque o primeiro cliente de outro estado descobre no primeiro dia.