Extrair texto entre tag HTML

Iniciado por emanoeljulio, 29 de Agosto de 2012, 09:29

tópico anterior - próximo tópico

emanoeljulio

Bom dia!!!
Estou desenvolvendo um script para extrair alguns dos de uma página html. A minha dificuldade é extrair o texto quando ele esta em várias linhas e esse texto é variável. Exemplo:


<td style="padding-top: 9px;" valign="top" align="right"><b>Descrição:</b></td>
<td colspan="3">
<div id="divConteudoDescricaoTarefa" class="descricaoTarefa">Solicito
a instalação e homologação do visualizador gratuito de arquivos DWG da
AutoDesk de nome "DWG TrueView", segue abaixo a página do fabricante
contendo o software para donwload, bem como as especificações de licença
e instalação.<br>http://www.autodesk.com.br/adsk/servlet/index?id=12721305&amp;siteID=1003425</div>
</td>


Gostaria de extrair o trecho "Solicito a instalação e homologação do visualizador gratuito de arquivos DWG da AutoDesk de nome "DWG TrueView", segue abaixo a página do fabricante contendo o software para donwload, bem como as especificações de licença e instalação. http://www.autodesk.com.br/adsk/servlet/index?id=12721305&amp;siteID=1003425" e guardá-lo em uma variável. Já tentei com o grep e o sed e pequisei no google vários exemplos mas até agora sem sucesso.

fpissarra

Dê uma olhada no 'sed'. No exemplo abaixo, uma maneira de fazer é:

$ sed -n '/<div id="divConteudoDescricaoTarefa".*>/,/<br>/ {
s/<div.*">//
s/<br>.*//
p }' test.html


Isso separará as linhas entre <div id="divConteudoDescricaoTarefa" e <br> e retirará o div e o br.

O resultado vai ser o texto COMO está (com carriage returns e tudo mais).

irtigor

Dá pra fazer com sed, awk, grep... mas eu usaria uma linguagem como perl, python ou ruby (qualquer uma, desde que possua uma biblioteca de análise de html, tipo: http://docs.python.org/library/htmlparser.html).

emanoeljulio

Vou testar, mto obrigado pela ajuda de ambos!!!