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

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

Re: [shell-script] Re: Script para baixar aquivo que muda diariamente em


From: Jonathan Lessa
Subject: Re: [shell-script] Re: Script para baixar aquivo que muda diariamente em site
Date: Tue, 23 Aug 2011 19:33:03 -0300

analisei os codigos fonte das páginas envolvidas neste processo de download.
Não vou detalhar o html aqui porque não é do escopo da lista, mas dá uma
olhada no resultado do comando:

$ lynx -source "www.buriti.df.gov.br/ftp/default.asp?ano=2011&mes=08_Agosto"


Att.:
Jonathan Lessa


Em 23 de agosto de 2011 09:46, Alexandre <address@hidden>escreveu:

> **
>
>
> 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<http://www.buriti.df.gov.br/ftp/$%28lynx>-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
> 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/*.pdfseria
> > > 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,
>
> > > 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]
> >
>
>  
>



-- 
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]