[Python-de] HTML mit RegEx filtern
Diez B. Roggisch
deets at web.de
Mi Dez 20 23:59:34 CET 2006
>
> Klingt interessant - ich glaube das hab ich sogar schon mal in Action gesehen...
> Hast Du vielleicht ein oder zwei Links mit ein paar guten Tutorials? Ich finde
> zwar ne menge Links, aber eben kein gutes Tutorial.
Keine Ahnung - tutorials sind ja nett, API-docs & ein paar Beispiele
reichen mir aber bei so etwas simplem.
> Trotzdem interessiert mich die RegularExpression um aus aus einem String einen
> Teil (wie im Beispiel die URL in src) zu übernehmen und in einen neuen String
> ein zu bauen?
>
> Ich bin immerhin schon so weit (bitte nicht kreuzigen):
>
> text = re.sub('<img src="(.*?)">', lambda mat: mat.group(1), text)
>
> Das filtert mir in einem String enthaltene Bilder heraus und gibt deren URLs
> zurück... Aber das muss doch schöner gehen? Und lambda ist an der Stelle doch
> eigentlich auch irgendwie weg zu kriegen?
Andere haben dir schon Loesungen gezeigt, die etwas weiter gehen. Aber
was ist mit Attributen in einfachen Anfuehrungszeichen? Was ist
(zugegeben, img-src hat das nicht) mit Attributen in denen das jeweils
andere Anfuehrungszeichen vorkommt? Was mit Attributen, die gar keine
Anfuehrungszeichen haben (HTML erlaubt das)? Was ist mit mehrzeiligen
Tags? Was mit Gross/Kleinschreibung?
Die Zeit die du investierst deinen RE wasserdicht zu machen, ist besser
investiert sich mit BS und generell HTML/XML-parsing (so das geht, wenn
der HTML-code ausreichend sauber ist)
Glaub' es einfach. Es ist so.
Diez
Mehr Informationen über die Mailingliste python-de