Diario Oficial Ceara - Diário Oficial do Ceará | PDF
Diário Oficial do Ceará | PDF

Como acessar e baixar publicações do Diário Oficial do Ceará

O diario oficial ceara é publicado todos os dias úteis pelo governo estadual e contém tudo: nomes de servidores promovidos ou removidos, editais, contratos de fornecimento, diários da Assembleia Legislativa, atos de prefeituras municipais que repassam dados. A plataforma atual é chamada DOF (Diário Oficial dos Municípios), um portal unificado que também atende dezenas de outros estados. O Ceará migrou para ele em 2023, então qualquer tutorial mais antigo provavelmente aponta para domínios obsoletos. O endereço é diariooficial.ce.gov.br. A interface permite buscas por palavra-chave, data, tipo de publicação e município. Se você precisa localizar algo específico — um servidor, um contrato, uma nomeação — o filtro "Todos os campos" costuma funcionar melhor que a busca simples, porque indexa trechos menores que o campo padrão ignora. Eu levei uns quatro meses pra descobrir isso, já que a primeira versão que testei só retornava resultados quando o termo aparecia no título ou no resumo.

diario oficial ceara: como baixar edições completas e consultas pontuais

Existem basicamente três formas de extrair conteúdo. A primeira é a ferramenta de busca do próprio portal, que gera uma lista de atos com links para cada página do diário. A segunda é o download do PDF completo da edição diária, disponível normalmente na seção "Edições" ou "Diário do Dia". A terceira, e a mais útil para quem faz trabalho em escala, é a API pública deles, documentada em developers.diof.com.br. A API entrega os dados em JSON e permite filtrar por data, entidade, tipo de publicação e até termos específicos, o que resolve o problema de ter que navegar por centenas de páginas manualmente. Pra quem só precisa de uma coisa rápida, a busca textual já basta. Para volume, a API é o caminho. Cada requisição na API retorna no máximo 50 registros por página, então se o seu filtro puxar 2 mil resultados, você vai precisar rodar o loop inteiro com paginação. Isso não é difícil, mas quem nunca fez antes pode levar um susto no primeiro dia achando que o sistema quebrou porque só recebeu 50 itens.

Eu tenho um script Python que roda todas as requisições, salva o JSON bruto e depois extrai os campos que me interessam. O processo leva cerca de 3 minutos pra uma janela de 30 dias com filtro amplo, e uns 12 segundos se o filtro for restrito a um único município e tipo de ato. A latência principal não é o servidor deles — é o tempo de processamento do código que monta os dicionários e grava no disco. Eu uso asyncio pra paralelizar, senão cada requisição fica travada na fila e o tempo sobe pra algo em torno de 40 minutos pros mesmos 30 dias.

Problemas reais que você vai encontrar

O maior tropeço que eu tive aconteceu num projeto pra monitorar contratações diretas de municípios pequenos. Eu configurei a busca pra "contrato" mais o nome do município, filtrei por data e comecei a rodar. Os resultados vinham, mas muitos atos apareciam duplicados com leves variações no campo "data de publicação". Descobri depois que o próprio DOF indexa tanto a versão inicial quanto retificações, e quando um município envia um contrato corrigido, ele gera dois registros separados. A solução foi cruzar pelo UUID do ato, não pela data. Cada publicação recebe um identificador interno único que se mantém mesmo quando o conteúdo é atualizado, então usar esse campo como chave primária elimina a duplicação na hora. Outro problema recorrente é a indisponibilidade no final de semana e feriados. O sistema geralmente entra em manutenção durante a madrugada entre sexta e sábado, e às vezes não volta no domingo de manhã. Se você está escalonando um job automatizado pra rodar todo dia às 6h, coloque um buffer de pelo menos duas horas e um retry com delay exponencial. Eu perdi um dia inteiro investigando um erro de 403 e descobri que era só o portal estar fora do ar para uploads de novas edições. O erro 403 é genérico demais na API deles, então não adianta confiar nele como indicador de problema de autenticação.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Uma limitação séria da API é que alguns tipos de publicação simplesmente não estão disponíveis pelos endpoints públicos. Atos de tribunais de contas e determinados diários da Assembleia que foram migrados anteriormente não têm representação completa no catálogo atual. Se o seu trabalho depende exclusivamente desses documentos, você vai precisar acessar o site do TCE-CE e da Assembleia separadamente. Não existe agregador único pra tudo ainda.

Armazenamento e organização dos dados

Quando você vai baixar edições inteiras, cada PDF tem em média entre 8 e 45 megabytes. Diários grandes de Fortaleza podem passar de 80MB em dias de muita publicação. Se a ideia é manter um repositório histórico, o custo de armazenamento cresce rápido. Eu recomendo guardar apenas os metadados estruturados da API e baixar os PDFs sob demanda, quando realmente precisar consultar o texto integral. Isso cortou meu volume em cerca de 70% no primeiro mês. Os campos que mais valem a pena salvar de cara são: uuid, dataPublicacao, tipoPublicacao, entidade (município ou órgão), titulo, e o link direto para o PDF. O campo "texto" nem sempre vem preenchido nas requisições padrão, então se você precisa do conteúdo completo digitado, tem que usar o endpoint específico de extração de texto, que é mais lento e às vezes retorna caracteres corrompidos em atos mais antigos, anteriores a 2018.

Alternativas e quando desistir

Se a API não cobre o que você precisa, duas saídas existem. A primeira é a consulta direta no portal com filtros avançados, que funciona bem para pesquisas pontuais em períodos curtos. A segunda é pedir acesso a dados estruturados via Open Data, entrando em contato com a SEINFRA (Secretaria da Infraestrutura) do Ceará, que gerencia a plataforma DOF no estado. Eles às vezes disponibilizam bundles mensais em CSV ou XML se você tiver um propósito institucional claro. Não é garantido, mas já vi pessoas conseguirem acesso sem burocracia excessiva, desde que justifiquem o uso. Não recomendo tentar raspagem manual de páginas HTML. O portal muda de estrutura periodicamente e qualquer ajuste no front-end quebra scripts feitiços em poucas semanas. Vale mais a pena aprender o esquema da API do que gastar tempo mantendo seletores CSS que vão obsolete vir a cada atualização. O tempo médio de suporte de um scraper caseiro costuma ser entre três e oito meses antes de começar a falhar intermitentemente.

Resumindo o que funciona na prática: use a API, trate UUIDs como chaves, implemente paginação, lide com os 403 como sinal de manutenção, e deixe os PDFs para download sob demanda. O resto é ajuste fino dependendo do que você está buscando.