[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Script para baixar aquivo que muda diarialmente em site
From: |
Alexandre |
Subject: |
Script para baixar aquivo que muda diarialmente em site |
Date: |
Sat, 20 Aug 2011 23:36:44 -0000 |
User-agent: |
eGroups-EW/0.82 |
Olá.
O script que fiz está funcionando, mas com alguns problemas. Alguém poderia me
dar algumas dicas? Há algo mais prático e seguro?
Antes quero informar que não sou programador e shell script estou aprendendo.
Em outras palavras, dou nó em pingo d'água.
Espero, também, conseguir explicar o script.
Quero baixar o Diário Oficial do Governo do Distrito Federal
(http://www.gdf.df.gov.br), fazer uma pesquisa nos arquivos PDFs baixados e
caso seja encontrada a palavra indicada no script um e-mail seja enviado para
mim.
O primeiro problema que encontrei foi o padrão do link, que é da forma menos
indicada para internet:
http://www.buriti.df.gov.br/ftp/diariooficial/2011/08_Agosto/DODF Nº 162
19-08-2011/Seção01- 162.pdf. Se tivesse uma forma de dizer
http://www.buriti.df.gov.br/ftp/diariooficial/2011/08_Agosto/*.pdf seria
perfeito, não teria receio do link mudar por um descuido de quem digita.
O segundo são das datas, pois o DO só sai em dias úteis, tal fato dificulta meu
script.
Não encontrei uma maneira prática de lidar com os números dos Diários
Oficiais. O número do diário pode não bater com a data que publicado.
Para o script funcionar, pelo menos a parte para baixar o diário oficial, tem
que ter um valor inicial em um arquivo de nome ultimodo.reg na mesma pasta do
script, no caso o valor é o número do último diário oficial, hoje seria o 161
para baixar o de sexta-feira dia 19/8/2011.
Outra coisa, no link que é gerado com as variáveis, onde tem 19-"$MESN"-"$ANO",
coloquei 19 para funcionar hoje baixando o DO de sexta feira. Onde tem 19
ficaria a variável DIA ($DIA).
Esses são os que vejo...
Obrigado!!!
#################
_ATENÇÃO: Antes de executar o script crie uma nova pasta e o coloque dentro,
pois há uma parte que apaga arquivos usando rm -f._
#################
O script:
#!/bin/bash
#Script: Baixar Diário Oficial do GDF
DIA=$(date +%d)
MES=$(date +%B)
MESN=$(date +%m)
ANO=$(date +%Y)
DO1=$(ls Se* | cut -d0 -f3 | cut -d. -f1 >>ultimodo.reg)
DO2=$(tail -1 ultimodo.reg)
i=$DO2
echo $DO2
echo $QD
sleep 1
rm -f Se*
###### Seção 1 #######
while test $i -le $DO2
do
i=$((i+1))
wget
"http://www.buriti.df.gov.br/ftp/diariooficial/"$ANO"/"$MESN"_"$MES"/DODF%20N%C2%BA%20$i
19-"$MESN"-"$ANO"/Se%C3%A7%C3%A3o01-%20$i.pdf" $1
wget
"http://www.buriti.df.gov.br/ftp/diariooficial/"$ANO"/"$MESN"_"$MES"/DODF%20N%C2%BA%20$i
19-"$MESN"-"$ANO"/Se%C3%A7%C3%A3o02-%20$i.pdf" $1
wget
"http://www.buriti.df.gov.br/ftp/diariooficial/"$ANO"/"$MESN"_"$MES"/DODF%20N%C2%BA%20$i
19-"$MESN"-"$ANO"/Se%C3%A7%C3%A3o03-%20$i.pdf" $1
# Onde tem 19 (19-"$MESN"-"$ANO") deve ser à variável $DIA.
export RC=$?
if [ "$RC" = "0" ]; then
break
else
echo 'Não foi possível baixar DO-GDF' | mutt -s 'Não foi
possível baixar a seção 1 do DOGDF' address@hidden
fi
done
###### Pesquisa ######
y=-1
nomes=( "QUEIROZ" "AGNELO") #Queiroz é o sobrenome do Governador do DF, só para
teste, pois sempre tal nome estará presente no DO.
DO3=$((DO2+1))
DATA=$(date)
rm pdfgrep.txt # Apaga entradas anteriores.
# Para essa parte funcionar é necessário que o mutt esteja instalado e que o
SMTP no mesmo esteja configurado.
while test $y -le 2 # No caso as duas palavras em nomes.
do
y=$((y+1))
pdfgrep -i ${nomes[$y]} *.pdf >> pdfgrep.txt
export RC=$?
if [ "$RC" = "1" ]; then
cat pdfgrep.txt | mutt -s "Encontrado >> ${nomes[$y]} << no DOGDF"
address@hidden
#echo ${nomes[$y]} # Para testar o script.
else
echo Não foi encontrado _"${nomes[$y]}"_ no diário $DO3 em $DATA. >>
pdfgrep.log
fi
done
echo >> pdfgrep.log
exit 0
- Script para baixar aquivo que muda diarialmente em site,
Alexandre <=