Diário Oficial da União - Download facilitado
Publicado por Valtoir dos Santos Jardim (última atualização em 14/07/2011)
[ Hits: 20.946 ]
Homepage: valtoir.wordpress.com
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ã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 .
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.
#!/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
Limpa comentários e linhas em branco nos arquivos de configuração (.conf)
Mudar senha de usuário automaticamente
Instalação do Microsoft Edge no Linux
Um super limpador do sistema KDu
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Pastas da raiz foram para a área de trabalho (4)
usb's param de funcionar do nada (6)
Como criar condições de monitoria de 2 IPs no Zabbix (0)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (2)