2009-10-25 1 views

Répondre

4

Le module standard python html.parser devrait vous permettre d'analyser le contenu html simple et d'éliminer les étiquettes. il suffit de dériver HTMLParser, puis de surcharger toutes les méthodes _ *() afin qu'elles produisent ou suppriment du contenu, en fonction des balises des éléments environnants.

4

BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/

Sur la page d'accueil:

Beautiful Soup est un analyseur Python HTML/XML conçu pour les projets de redressement rapide comme écran racler. Trois caractéristiques le rendent puissant:

  1. Belle soupe ne s'étouffe pas si vous lui donnez un mauvais balisage. Cela donne un arbre d'analyse qui fait à peu près autant de sens que votre document original. C'est généralement assez bon pour collecter les données dont vous avez besoin et s'enfuir. Beautiful Soupe fournit quelques méthodes simples et des idiomes Pythoniens pour naviguer, rechercher et modifier un arbre d'analyse: une boîte à outils pour disséquer un document et extraire ce dont vous avez besoin. Vous n'avez pas besoin de créer un analyseur personnalisé pour chaque application.
  2. Beautiful Soup convertit automatiquement les documents entrants en documents Unicode et sortants en UTF-8. Vous n'avez pas à penser aux encodages, sauf si le document ne spécifie pas d'encodage et que Beautiful Soup ne peut pas en détecter un seul. Ensuite, il vous suffit de spécifier l'encodage d'origine.
+0

Beaucoup SO discussions touchent cet analyseur, http: // stackoverflow .com/questions/étiqueté/beautifulsoup – gimel

1

Vous voudrez peut-être un coup d'œil à la bande-o-Gram HTML Conversion Library: utilisation http://pypi.python.org/pypi/stripogram/1.5

exemple de readme.txt:

from stripogram import html2text, html2safehtml 
    mylumpofdodgyhtml # a lump of dodgy html ;-) 
    # Only allow <b>, <a>, <i>, <br>, and <p> tags 
    mylumpofcoolcleancollectedhtml = html2safehtml(mylumpofdodgyhtml,valid_tags=("b", "a", "i", "br", "p")) 
    # Don't process <img> tags, just strip them out. Use an indent of 4 spaces 
    # and a page that's 80 characters wide. 
    mylumpoftext = html2text(mylumpofcoolcleancollectedhtml,ignore_tags=("img",),indent_width=4,page_width=80) 
Questions connexes