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

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

Re: [shell-script] Baixar HTML e enviar email.


From: Egon E. Braun Filho
Subject: Re: [shell-script] Baixar HTML e enviar email.
Date: Tue, 27 Oct 2009 09:47:29 +0100

Olá,

    Uma possível dica seria dar uma checada no header do protocolo
HTTP que vêm junto à sua requisição.

    Existe um header chamado ETag, esse header funciona como um hash md5
do arquivo. Daí fica fácil saber se houve modificação. CONTUDO, nem
todos os servidores implementam o header ETag, devido ao overhead que isso
representa para o servidor. Mas vale o teste:

        $ wget --spider --server-response http://www.austerus.com.br/ -o 
headers.out

    Essa é a minha página hospedada num servidor que sei que implementa
a ETag. Em servidores mais antigos existem os headers:

        If-Modified
        If-Modified-Since

    Que definem timestamps para o arquivo. Como, nesta implmentação,
obrigatoriamente o servidor e o cliente devem estar com os relógios
sincronizados, então no protocolo HTTP/1.1 esses headers foram substituídos
pelo ETag.

    Dá uma olhada em:

        http://en.wikipedia.org/wiki/List_of_HTTP_headers
        http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


    Se o seu servidor fornecer o header ETag, basta verificar se
o valor fornecido é diferente do valor antigo que você tem. Se for
diferente, então o arquivo é novo. :)


    Se seu servidor não fornecer o ETag, aí você mesmo vai ter que
guardar o arquivo origem e executar os hashes você mesmo. Mas acredito
que a melhor saída para ti no momento é usar hashes md5/sha para verificar
se o arquivo foi alterado ou não.

On Tue, 27 Oct 2009 09:07:59 -0200
Bruno Gunter <address@hidden> wrote:

> Por que não um Apache interno e através do wget recursivo que o Thiago
> sugeriu, você aí sim crie um feed para seu pessoal assinar? Você só
> rpecisa ter um mecanismo automatizado para saber se o site alvo sofreu
> atualização (basta um simples shell comparando se o trecho a linha X é
> diferente de A).
> 
> []'s
> Gunter
> 
> On Mon, 2009-10-26 at 18:58 -0300, Anderson Duarte wrote:
> >   
> > Então Tiago, a ideia seria enviar por email mesmo, pois mesmo se seja
> > um
> > servidor apache interno, o usuario tem que ir ate o link pra abrir e
> > ver, ja
> > no caso do email nao, o pessoal passa praticamente o dia inteiro com o
> > email
> > aberto, entao quando a mensagem beter la dentro eu creio que fique bem
> > melhor. Vou tetar sua dica aqui, mas ainda quero que seja por email,
> > se bem
> > que quanto a passar o email para o usuario eu nao vejo problema algum
> > pois
> > ja consegui fazer, porem queria mesmo era automotizar a busca no site
> > por
> > novos Atos.
> > 
> > Obrigado.
> > 
> > 2009/10/26 Tiago Peczenyj <address@hidden>
> > 
> > >
> > >
> > > Anderson,
> > >
> > > Vc poderia baixar todo o site usando wget recursivo
> > >
> > > cd /caminho/para/mirror/atos_pmpf
> > > BASE=http://www.fazenda.gov.br
> > > DIR=confaz/confaz/atos/atos_pmpf/2009/
> > >
> > > wget -r -N -l 1 --no-remove-listing ${BASE}/${DIR} -o atos.log
> > >
> > > Depois, seria o caso de vc ter um registro do que vc ja mantou (um
> > arquivo
> > > txt ja bastaria) ou analisar os logs e ver quais arquivos tem log
> > diferente
> > > disso
> > >
> > > --2009-10-26 17:18:00--
> > >
> > >
> > http://www.fazenda.gov.br/confaz/confaz/atos/atos_pmpf/2009/PMPF018_09%20Retifica%C3%A7%C3%A3o%20RJ.htm
> > > Reusing existing connection to www.fazenda.gov.br:80.
> > > HTTP request sent, awaiting response... 200 OK
> > > Length: 50508 (49K) [text/html]
> > > Server file no newer than local file `
> > >
> > www.fazenda.gov.br/confaz/confaz/atos/atos_pmpf/2009/PMPF018_09Retificação
> > > RJ.htm' -- not retrieving.
> > >
> > > e, então, enviar por email.
> > >
> > > Entretanto, se vc pensar bem, vc pode ter um mirror dos atos e, a
> > cada novo
> > > arquivo nesse diretorio, vc pode avisar por email e servir os
> > arquivos por
> > > um apache interno - se for possivel.
> > >
> > >
> > > 2009/10/26 Anderson Duarte <address@hidden<andersonrizada%
> > 40gmail.com>
> > > >
> > >
> > > >
> > > >
> > > > Pessoal, aqui na empresa eu tenho um Debian que hospeda toda a
> > intranet
> > > da
> > > > empresa e alguns sisteminhas em php que deixo rodando. Nesta
> > maquina eu
> > > tb
> > > > tenho um MTA (postfix) pra me enviar alguns eventos por email.
> > > > Acontece que apareceu um novo evento, e pensei em usar um Shell
> > Script
> > > pra
> > > > isso.
> > > > É o seguinte, o pessoal do financeiro baseia-se em uma tabela
> > fornecida
> > > > pela
> > > > Fazenda. Esta tabela, alguns atos da confaz, não existem um RSS
> > pra
> > > seguir
> > > > e
> > > > o pessoal tem que ficar entrando no site todo dia. Daí o shell pra
> > > > facilitar
> > > > a vida :)
> > > >
> > > > A pagina onde ficam os Atos é essa aqui:
> > > > http://www.fazenda.gov.br/confaz/confaz/atos/atos_pmpf/2009/
> > > >
> > > > Eu fiz o seguinte, baixei o ultimo Ato com o wget
> > > >
> > > > $ wget -c
> > > >
> > >
> > http://www.fazenda.gov.br/confaz/confaz/atos/atos_pmpf/2009/PMPF020_09.htm
> > > >
> > > > E depois mandei em formato HTML para o pessoal do financeiro
> > assim:
> > > >
> > > > $ cat PMPF019_09.htm | mail -a "Content-type: text/html;" -s "Atos
> > > Confaz"
> > > > address@hidden <usuario%40dominio.com> <usuario%
> > 40dominio.com>
> > >
> > > >
> > > > O problema é o seguinte, se os senhores verem, no dia 23/09 sairam
> > 7
> > > Atos.
> > > > O
> > > > unico padrão que ele segue é com o nome do arquivo HTML tipo o
> > > > PMPF018_09.htm, PMPF019_09.htm, PMPF020_09.htm etc...
> > > > Mas o chato é que as vezes ainda sai uma errata de algum destes,
> > > > complicando
> > > > mais ainda.
> > > > Queria que o script rode uma vez ao dia e pegar todas referente
> > aquele
> > > dia.
> > > > (no caso do exemplo, dia 23/09)
> > > >
> > > > Ideias?
> > > >
> > > > Desde já obrigado.
> > > >
> > > > --
> > > > _________________________________________
> > > > Anderson Dantas Duarte Linux user #432277
> > > > Linux é o estado da arte!
> > > > Preserve a arte, use Linux! :)
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > --
> > > Tiago B. Peczenyj
> > > Linux User #405772
> > >
> > > http://pacman.blog.br
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > > 
> > >
> > 
> > -- 
> > _________________________________________
> > Anderson Dantas Duarte Linux user #432277
> > Linux é o estado da arte!
> > Preserve a arte, use Linux! :)
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> > 
> > 
> 
> 
> 


-- 
Egon E. Braun Filho <address@hidden>


reply via email to

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