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

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

Re: [shell-script] Re: Salvar posts de determinados usuários em fóruns


From: José Paulo de Oliveira Petry
Subject: Re: [shell-script] Re: Salvar posts de determinados usuários em fóruns
Date: Fri, 9 Jul 2010 21:02:47 -0300

Cristiano,

Imagina se estivesse com tempo!!!

Mto obrigado, captei o conceito e vou tentar coloca-lo em prática!

Valeu
José Paulo



2010/7/9 Cristiano <address@hidden>

>
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> José Paulo de Oliveira Petry <petrybr@...> escreveu
>
> >
> > Senhores,
> >
> > Quero montar uma base de dados com os posts que determinados usuários
> > fizeram em uma determinada thread de determinados fórums online.
> >
> > ***
> > Resumindo minha dificuldade:
> >
> > Minha dificuldade: Separar as informações contidas entre duas tags
> > específicas, ou seja:
> >
> > Pegar o arquivo HTML e separar os posts (ou seja, pegar o que tiver entre
> o
> > <table> </table>)
> > Pegar dentro de cada post a data e hora do mesmo ( ou seja, pegar o que
> > tiver entre as tags <!-- status icon and date --> e <!-- / status icon
> and
> > date --> )
> > Pegar dentro de cada post a mensagem propriamente dita ( ou seja, pegar o
> > que tiver entre as tags <!-- message --> e <!-- / message --> )
> > ***
>
> Petry, boa tarde. O dia está corrido e confesso que não li todo o seu post.
> Parei onde você começa a contar a história.
>
> Mas, se entendi pela parte cotada acima, a estrutura do seu arquivo é:
>
> <table>
> ... talvez alguma coisa ...
>
> <!-- status icon and date -->
> ... talvez outras coisas ...
>
> <!-- message -->
> ... texto da sua mensagem ...
> <!-- / message -->
>
> ... talvez mais outras coisas ...
> <!-- / status icon and date -->
>
> ... talvez mais alguma coisa ...
> </table>
>
> Se for isso, para pegar tudo que existe entre 2 tags, sed é um bom caminho.
>
> Vamos a um exemplo:
>
> Considere a seguinte página da wikipedia:
>
> http://tinyurl.com/2bk34lv
>
> Suponha que eu salvei o código fonte dela no arquivo chamado
> 'ponto_fusao.html'. Veja este código fonte aqui:
>
> http://pastebin.com/hKUUFJ63
>
> Então, se eu quero só a tabela com os pontos de fusão de cada elemento,
> preciso pegar tudo o que estiver dentro das tags <table> e </table>.
>
> Basta usar o de endereços e intervalo do sed:
>
> sed -n '/<table.*>/,/<\/table>/p' ponto_fusao.html
>
> No exemplo acima, a opção -n suprime a saída automática, sendo exibido
> apenas o que for explicitamente solicitado (comando p).
>
> O sed pesquisa todas as linhas contidas no intervalo entre a primeira linha
> que coincidir com o que estiver dentro do primeiro grupo delimitado pela /,
> ou seja /<table.*>/, até a última linha que casar com o conteúdo do segundo
> grupo delimitado pela /, ou seja, <\/table>.
>
> Neste segundo grupo, a contrabarra (\) serve para 'escapar' a barra normal
> (/) para que ela seja interpretada literalmente e não como o delimitador da
> pesquisa.
>
> Em seguida, o comando p imprimi todo o que estiver neste intervalo.
>
> Você pode usar este conceito para fazer sua pesquisa e, se desejar
> delimitar ainda mais, pegando apenas um 'sub-intervalo' dentro do seu
> intervalo, pode usar o limitadores { e } para executar um segundo bloco de
> comandos apenas dentro deste primeiro intervalo.
>
> No seu caso, a pesquisa de um novo intervalo, dentro do intervalo
> localizado, conforme exemplo abaixo, que retornaria apenas a linha da tabela
> que contém o elemento 'Carbono':
>
> sed -n '/<table.*>/,/<\/table>/{/Carbono/,/<\/tr>/p}' ponto_fusao.html
>
> Se você testou o código acima, viu que a tag <tr> não foi listada, pois a
> instrução pedia para iniciar o intervalo pela linha que contém 'carbono'.
>
> Não é a solução para o seu problema, mas é um caminho. Dá para melhor muito
> este código.
>
> Na correia que está hoje, foi o que deu para arrumar.
>
> Abraço
>
> Cristiano
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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