Python HTML filtern

hendr1k1

Ensign
Registriert
Aug. 2009
Beiträge
182
Ich habe eine html datei und ich möchte nun möglichst die sichtbaren Inhalte herausfiltern.

Ich weiss, dass es schwierig ist, für den Anfang wäre es hilfreich, wenn ich weiss, wie ich den Text zwischen <body>blach</body> bekommen kann.

Wie kann man das Lösen?
 
naja, in Python weiß ich es jetzt nicht auswendig. Aber als Hinweis: per regulärer Ausdrücke einfach alle Tags entfernen. Vielleicht ist das das, was du suchst.

Geht mit dem "re" Paket (import re). Und dann mal nach "sub" schauen.
Ergänzung ()

PHP:
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> p = re.compile('<[\/\!]*?[^<>]*?>')
>>> p.sub('leer', '<body>test</body><b>test2</b>')
'leertestleerleertest2leer'
>>> p.sub('', '<body>test</body><b>test2</b>')
'testtest2'

Einfach mal testen, ob es auch richtig funktioniert
 
Zuletzt bearbeitet:
Eine erste Möglichkeit wäre das Standardmodul HTMLParser. Einfach mal in der Dokumentation ansehen.
Wenns noch ein bisschen komplexer sein sollte, kann ich dir Beatiful Soup empfehlen.
 
einem Helfer mit "kenn ich auch, schlechte Lösung" abzufertigen ist auch nicht die feine Art ...
Wie wärs denn wenn du uns mal sagst was du schon probiert hast und was nicht ???
Und vor ALLEM welche VORSTELLUNGEN du so hast ??
 
Ich wollte CoolHandLuke nicht schlecht oder so darstellen. Ich war zuerst auch auf diese Idee gekommen, doch es gibt eindeutig bessere Lösungen.

Habe mir mal Beautiful Soup angeschaut, sowas habe ich mir vorgestellt.

Was ich probiert habe:

Ich habe mich dem HTMLParser auseinander gesetzt, jedoch konnte ich da nicht den Lesbaren Text herausfiltern. Ich konnte nur die Attribute auslesen, wie beim tag "<a", den Wert vom href.
 
Zurück
Oben