shell-script-pt
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]