Diário Oficial da União - Download facilitado
Publicado por Valtoir dos Santos Jardim (última atualização em 14/07/2011)
[ Hits: 21.107 ]
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
Claro 3g Sony Ericsson md300 script conexao
Script Para Ajustar o Intevalo de Legendas
Fluxbox - Slideshow de wallpapers aleatórios
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









