Seite 1 von 1

HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 08:37
von Stegi95
Hey Leute

ich suche eine Funktion, welche einen vorher mit urlopen und read ausgelesenen Quelltext in seine Tags aufspaltet. also aus
<html><body><input type=text></body></html>
wird eine Liste wie diese:
['<html>','<body>','<input type=text>','</body>','</html>']

Gibt es sowas? Habs schon mit split('<') versucht, aber da wird ja das < gelöscht...

Bitte helft mir...

Re: HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 08:47
von BlackJack
@Stegi95: Was willst Du denn mit den Daten danach anstellen? Für die Verarbeitung von HTML würde ich eher einen HTML-Parser empfehlen statt Zeichenkettenmethoden. Zum Beispiel `lxml.html`.

Re: HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 08:52
von Whitie
Hallo Stegi95,
mit

Code: Alles auswählen

In [3]: import re
In [4]: re.findall(r'<.+?>', '<html><body><input type=text></body></html>')
Out[4]: ['<html>', '<body>', '<input type=text>', '</body>', '</html>']
erreichst du genau das. Ich glaube aber das ist nicht was du willst (siehe Blackjack).

Gruß
Whitie

Re: HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 09:04
von Stegi95
War eigentlich nur aus Neugierde ;)

Hat geklappt...danke :D

Re: [Gelöst]HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 10:09
von pillmuncher
Fürchtet Euch vor Cthulhu!

Re: [Gelöst]HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 12:38
von Hyperion
pillmuncher hat geschrieben:Fürchtet Euch vor Cthulhu!
:-) Nice one!

Re: [Gelöst]HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 14:59
von sma
Da sage ich nur "Cthulhu fhtagn".

Das hier ist für XML-Tags gut genug:

Code: Alles auswählen

s = '<hallo a=">"></hallo>'
print(re.findall('''<(?:[^'">]|"[^"]*"|'[^']*')+>''', s))
Da XML ein > auch in den Attributwerten erlaubt, muss der reguläre Ausdruck ein bisschen komplizierter sein. Da aber das Finden von Tags keine Schachtelung beachten muss, die mit einer regulären Sprache nicht ausdrückbare wäre, spricht nichts gegen die Allzweckwaffe "re".

Stefan

Re: [Gelöst]HTML Quelltext in Tags splitten.

Verfasst: Samstag 30. Oktober 2010, 16:42
von BlackJack
@sma: Sicher? Was ist mit Kommentaren!? Und CDATA?