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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Script para baixar aquivo que muda diariamente em site


From: Alexandre
Subject: Re: Script para baixar aquivo que muda diariamente em site
Date: Tue, 23 Aug 2011 12:46:21 -0000
User-agent: eGroups-EW/0.82

Funcionou sim. Ainda não conseguir entender tudo o que fez, mas funcionou. 
Obrigado.

Alexandre


--- Em address@hidden, Jonathan Lessa <jonathanlessa@...> escreveu
>
> Alexandre,
> 
> Podem aparecer outras soluções, mas analisando os endereços dos pdf que
> deseja baixar identifiquei alguns padrões e apliquei neste comando, favor
> testar e depois adequar usando as variáveis que desejar, como dia, mês, ano,
> etc:
> 
> $ while read i; do wget "http://www.buriti.df.gov.br/ftp/$i";; done <<<
> "$(echo "$(lynx -source "www.buriti.df.gov.br/ftp/$(lynx -source "
> www.buriti.df.gov.br/ftp/default.asp?ano=2011&mes=08_Agosto" | grep
> 19-08-2011 | cut -d\' -f4)" | grep '.pdf' | cut -d\' -f6)")"
> 
> 
> Colocando o endereço base em uma variável podemos fazer:
> 
> $ site="http://www.buriti.df.gov.br/ftp/";
> 
> $ while read i; do wget "$site$i"; done <<< "$(echo "$(lynx -source
> "$site$(lynx -source "$site""default.asp?ano=2011&mes=08_Agosto" | grep
> 19-08-2011 | cut -d\' -f4)" | grep '.pdf' | cut -d\' -f6)")"
> 
> 
> O resultado do comando é o download dos arquivos PDF da data 19-08-2011
> 
> 
> Att.:
> Jonathan Lessa
> 
> 
> Em 20 de agosto de 2011 20:36, Alexandre <alexanndre@...>escreveu:
> 
> > **
> >
> >
> > 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' meuemail@...
> > 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"
> > meuemail@...
> > #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
> >
> >  
> >
> 
> 
> 
> -- 
> Att.:
> Jonathan Lessa
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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