Diário Oficial da União - Download facilitado

Publicado por Valtoir dos Santos Jardim (última atualização em 14/07/2011)

[ Hits: 20.730 ]

Homepage: valtoir.wordpress.com

Download diof.sh

Download 1292241763.diof.sh (versão 2)

Download 1298840798.diof.sh (versão 3)




Muitas pessoas necessitam baixar o Diário Oficial da União com regularidade, e o site da Imprensa Nacional não facilita muito as coisas.

No meu mundo perfeito haveria um servidor torrent oficial para a divulgação, o que permitiria o download sem sobrecarregar a banda da Imprensa Nacional, mas enquanto isso não acontece, disponibilizo um pequeno script para permitir o download de forma facilitada.

Detalhe importante: o script faz uso do navegador Chromium (o google-chrome não serve). Se quiser o download em um único arquivo, sugiro também instalar o aplicativo pdftk. Caso ele esteja disponível, o script junta automaticamente todas as páginas em um único PDF.

Observações: o processo é relativamente lento (+ ou - 40min. aqui, num link de 4Mbps), acredito que mais pelo fato da grande quantidade de conexões (uma para cada página do D.O.U.) do que pela largura de banda em si.

Além disso, o script cria uma janela por página a ser baixada (e a fecha automaticamente) o que significa que, até o final do script, você terá uma janela do chromium-browser "pipocando" em sua tela.

Se quiser usar o computador ao mesmo tempo, sugiro que, antes de rodar o script, marque a janela desejada para manter-se "sempre no topo".

  



Versões atualizadas deste script

Versão 2 - Enviado por Valtoir dos Santos Jardim em 13/12/2010

Changelog: Publiquei o script no VOL num dia, e logo em seguida uma atualização do chromium passou a exigir confirmação para o download de arquivos PDF, o que praticamente inviabiliza a automação. Após testar vários browser, adaptei o script para fazer uso do navegador Arora, que me pareceu a melhor opção. Basta instalar o Arora e configurá-lo para memorizar o download automático de arquivos PDF, dando atenção também à pasta de downloads padrão .

Download 1292241763.diof.sh


Versão 3 - Enviado por Valtoir dos Santos Jardim em 27/02/2011

Changelog: O script agora faz uso do Arora ao invés do chromium, que nas útlimas versões passou a exigir confirmação para download de arquivos pdf. Também não é mais preciso informar a pasta de download.

Download 1298840798.diof.sh


Esconder código-fonte

#!/bin/bash
#    autor: Valtoir dos Santos Jardim
#   e-mail: valtoirjardim_at_gmail_dot_com
#     data: 04/dez/2010
#   versão: ~ 0.99
#   Espero que esse script lhe seja útil. Para variar, se quiser um script inútil dê uma olhada em
#                 http://www.vivaolinux.com.br/scripts/download.php?arquivo=feet.sh

echo -e "\e[31;1m\nIMPORTANTE: para que o script funcione, é necessário que o chromium esteja configurado para NÃO perguntar onde salvar os arquivos.\e[m"

valida_data() {
VDATA="$(echo $1 | cut -d/ -f2)/""$(echo $1 | cut -d/ -f1)/""$(echo $1 | cut -d/ -f3)"
   [ $(date -d $VDATA +"%u") -gt 5 ] && {
      echo -e "\e[31;1m\nA data especificada é um $(date -d $VDATA +"%A")," \
      "e o Diário Oficial da União não circula aos $(date -d $VDATA +"%A")s.\n"\
      "\bTente usar o parâmetro \"-dDATA\". Por exemplo: \e[34;1m$0 -d14/12/2010\n\e[m"
      exit
   }
}

which chromium-browser > /dev/null || {
   echo -e "\e[31;1m\nEsse script requer o  browser chromium (http://code.google.com/intl/pt-BR/chromium/)."\
   " Não, o \"Google Chrome\" não serve. :-)\n\e[m"
   exit
}

SECAO="1 2 3"

while getopts d:f:ujh PARAMS; do
   case "${PARAMS}" in
      d) DATA="${OPTARG}";;
      f) DIR="${OPTARG}";;
      u) SECAO="${SECAO} 20";;
      j) SECAO="${SECAO} 126";;
      h) echo -e "\nScript feito para download do Diário Oficial da União." \
                 "Parâmetros:\n" \
                 "-d Especifica a data do DOU, no format dd/mm/aaaa. Ex: 14/12/2010\n" \
                 "-f Especifica a pasta padrão de downloads do chromium\n" \
                 "-u Baixa, além das Seções 1, 2 e 3, o Diário da Justiça - Seção Única\n" \
                 "-j Baixa, além das Seções 1, 2 e 3, o Diário da Justiça Federal da Primeira Região\n"
                 exit;;
   esac
done 

: ${DATA:=$(date +"%d/%m/%Y")}

valida_data $DATA

[ -z $DIR ] && DIR="/home/$USER/Downloads/"; echo -e "\e[31;1m\nPasta de downloads do chromium não informada. Espero que seja ${DIR}\n" \
   "\bSe a pasta de download for outra, defina-a com o parâmetro -f. \e[34;1mEx: $0 -f/home/fulano/Downloads/\e[m\n"

wget -O - "http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=1&pagina=1&data=$14/07/2011" |\
   grep "o foi encontrado nenhuma arquivo para os par" && {
   echo -e "\e[31;1m\nAparentemente não há edição do Diário Oficial da União no dia desejado (feriado, talvez?).\n\e[m"
   exit
}

for JORNAL in $SECAO; do
   PAG=$(wget -O - "http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=${JORNAL}&pagina=1&data=$14/07/2011" |\
      grep "totalArquivos=" | sed 's/^.*totalArquivos=//' | sed 's/".*$//')
   for PAGINA in $(seq 1 $PAG); do
      chromium-browser --app="http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=${JORNAL}&pagina=${PAGINA}&data=$14/07/2011"&
      while [ ! -e ${DIR}INPDFViewer.pdf ]; do
         sleep 1
      done
      mv ${DIR}INPDFViewer.pdf ${DIR}jornal_${JORNAL}_-_$PAGINA.pdf
      /bin/kill -15 $!
   done
done

which pdftk > /dev/null && {
   pdftk $(ls -tr ${DIR}/jornal*.pdf) cat output DOU_${DATA//\//_}.pdf
   rm ${DIR}/jornal_*.pdf
   echo -e "\e[31;1m\nPronto!\e[34;1m O arquivo DOU_${DATA//\//_}.pdf foi salvo nessa pasta.\n\e[m"
   grep -m1 -A2 "inútil" $0
   exit
}

echo -e "\e[31;1m\n Pronto!\e[34;1m Os arquivos foram salvos na pasta ${DIR}, um por página.\n" \
   "Se preferir ter todo o Diário Oficial da União em um único arquivo, instale o aplicativo \"pdftk\" e, \n" \
   "ao rodar esse script, você o terá, nessa pasta, com o nome DOU_${DATA//\//_}.pdf.\n\e[m"
   grep -m1 -A2 "inútil" $0

Scripts recomendados

Gerando múltiplas isos

Localizar e Matar Processo

Baixe arquivos em pedaços com o DCDownloader

Backup de Repositórios Subversion

bloqfor


  

Comentários
[1] Comentário enviado por valtoir em 13/12/2010 - 10:06h

Alterei o script para utilizar o browser Arora, pois o chromium mais atual passou a exigir confirmação de download de PDFs. A alteração deve ser publicada em breve.

[2] Comentário enviado por valtoir em 02/03/2011 - 13:32h

Ainda esperando pela liberação da versão mais atual pelo VOL... Com a ajuda de Walter Tominaga, o tempo de download de foi reduzido de 44 para 12min.

[3] Comentário enviado por mpivoto em 05/04/2011 - 05:19h

Seria possivel adaptar para baixar o Diario Oficial de São Paulo?

[4] Comentário enviado por ademirff63 em 03/01/2013 - 23:56h

Diário Oficial da União – pdf completo (todas as páginas) compactado no formato zip:

IN-Jornal 1 - http://goo.gl/s2GRn
IN-Jornal 2 - http://goo.gl/wgs1Y
IN-Jornal 3 - http://goo.gl/sO9ya

OBS: Atualizado diariamente no período da manhã.( Já que estou fazendo, porque não tornar público o acesso?)

[5] Comentário enviado por ademirff63 em 08/01/2013 - 23:17h

Diário Oficial do Estado de SP - pdf completo (todas as páginas) compactado no formato zip:

Cidade - http://goo.gl/FXrUa
Legislativo - http://goo.gl/bVmdj
Exec2 - http://goo.gl/LRNce
Exec1 - http://goo.gl/kL4Tf

OBS: Atualizado diariamente no período da manhã.
( Já que estou fazendo, porque não tornar público o acesso?)

[6] Comentário enviado por ademirff63 em 05/02/2013 - 17:38h

Melhorando e facilitando ainda mais, criei o site:

http://diariooficial.kissr.com

Nele disponibilizo diariamente os arquivos completos e compactados da Imprensa Nacional ( Diário Oficial da União) e da Imprensa Oficial do Estado de São Paulo (Díario Oficial do Estado de SP), para download.

[7] Comentário enviado por jranesio em 27/02/2013 - 11:22h

Excelente, parabéns.

Gostaria de saber se alguém possui algum script que permita fazer pesquisa direto e automatizada no Diário Oficial

[8] Comentário enviado por ademirff63 em 11/03/2013 - 14:14h

Enviei para o vivaolinux.com.br um script para fazer download do diario oficial da união, que gera um pdf único do DOU desejado (seção 1,2,3,20 ou 1010) e, em função da pergunta acima, logo em seguida enviei o script com algumas alterações para permitir a consulta de palavras de forma automatizada. Os dois scripts estão "em espera", aguardando serem publicados.

[9] Comentário enviado por jranesio em 13/03/2013 - 08:39h

Obrigado Ademir,
assim que tiver um tempo vou testar.

[10] Comentário enviado por mpc_94 em 31/08/2015 - 09:23h

Bom dia!! Alguem poderia mandar um link de download funcionando? Esses estão quebrados ;(
Obrigado!!

[11] Comentário enviado por ademirff63 em 06/10/2015 - 19:08h

Diário Oficial do Estado de São Paulo: http://doe.ademirff63.com.br

Diário Oficial da União: http://dou.ademirff63.com.br



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts