Autor Tópico: Extrair texto entre tag HTML  (Lida 3084 vezes)

Offline emanoeljulio

  • Usuário Ubuntu
  • *
  • Mensagens: 94
    • Ver perfil
Extrair texto entre tag HTML
« Online: 29 de Agosto de 2012, 09:29 »
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:

Código: [Selecionar]
<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.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Extrair texto entre tag HTML
« Resposta #1 Online: 29 de Agosto de 2012, 16:23 »
Dê uma olhada no 'sed'. No exemplo abaixo, uma maneira de fazer é:

Código: [Selecionar]
$ 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).

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Extrair texto entre tag HTML
« Resposta #2 Online: 29 de Agosto de 2012, 16:37 »
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).

Offline emanoeljulio

  • Usuário Ubuntu
  • *
  • Mensagens: 94
    • Ver perfil
Re: Extrair texto entre tag HTML
« Resposta #3 Online: 29 de Agosto de 2012, 17:32 »
Vou testar, mto obrigado pela ajuda de ambos!!!