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...
HTML Quelltext in Tags splitten.
@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`.
Hallo Stegi95,
mit
erreichst du genau das. Ich glaube aber das ist nicht was du willst (siehe Blackjack).
Gruß
Whitie
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>']
Gruß
Whitie
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Fürchtet Euch vor Cthulhu!
In specifications, Murphy's Law supersedes Ohm's.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Nice one!pillmuncher hat geschrieben:Fürchtet Euch vor Cthulhu!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Da sage ich nur "Cthulhu fhtagn".
Das hier ist für XML-Tags gut genug:
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
Das hier ist für XML-Tags gut genug:
Code: Alles auswählen
s = '<hallo a=">"></hallo>'
print(re.findall('''<(?:[^'">]|"[^"]*"|'[^']*')+>''', s))
Stefan