Guten tag
ich möchte ein Skript machen das es mir ermöglicht eine HTML-Datei zu scannen, wobei ich nur den Teil zwischen zwei HTML-Tag-s angezeigt haben möchte...zB von <titles> bis </titles> oder von <Body> bis </body>, diesen Teil möchte ich dann mit einem anderen Block ersetzen können,fertig!
wie könnte ich das realisieren? Ich arbeite dabei indem ich Zeile für Zeile scanne, ist das richtig so? oder muss ich die ganze Datei irgendwie reinsaugen und dann die Bedingung durchlaufen lassen ?
Danke für die Hilfe
Michel Koller
Von HTML-Tag zu HTML-Tag herausschreiben
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Michel!michel hat geschrieben:... wobei ich nur den Teil zwischen zwei HTML-Tag-s angezeigt haben möchte...zB von <titles> bis </titles> oder von <Body> bis </body>, diesen Teil möchte ich dann mit einem anderen Block ersetzen können,fertig!
Das "re"-Modul ist dein Freund.
Hier ein Beispiel mit Ersetzung:
http://www.python-forum.de/viewtopic.php?p=18920#18920
Vorher noch ein "import re" hin und schon kann es los gehen.
Den Titel zu ersetzen würde so aussehen:
Code: Alles auswählen
import re
ersatztitel = "Das ist der neue Titel"
htmlstring = \
"""<html>
<head>
<title>
Das ist der alte Titel
</title>
</head>
<body>
<p>
Irgendein Text...
</p>
</body>
</html>
"""
re_obj = re.compile("<title>(.*?)</title>", re.M | re.I | re.S)
ergebnis = re_obj.sub("<title>%s</title>" % ersatztitel, htmlstring)
print ergebnis
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Oder noch einfacher:gerold hat geschrieben:Code: Alles auswählen
re_obj = re.compile("<title>(.*?)</title>", re.M | re.I | re.S) ergebnis = re_obj.sub("<title>%s</title>" % ersatztitel, htmlstring) print ergebnis
Code: Alles auswählen
import re
ergebnis = re.sub("<title>(.*?)</title>(?uism)", htmlstring)
print ergebnis
TUFKAB – the user formerly known as blackbird
-
- User
- Beiträge: 55
- Registriert: Montag 30. Mai 2005, 16:03
- Wohnort: schönsten Stadt Deutschlands
- Kontaktdaten:
Ist zwar schon ein Weilchen her, aber ich bin grad beim suchen über dieses Modul hier BeautifulSoup gestolpert.
Für die, die nicht nochmal alles selber schreiben wollen. :Pl
Für die, die nicht nochmal alles selber schreiben wollen. :Pl
[size=84][url=http://de.wikipedia.org/wiki/Jamba]Love Jamba[/url] <!--Olliminatore-->input<?/> [url=http://www.spreeblick.com/blog/index.php?p=324]Boycott Jamba[/url][code]def olliminiert(optimiert, eliminiert, terminiert):[/code][/size]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also das Beispiel bei der Dokumentation zeigt schon ziemlich die Einfachheit des ganzen: http://www.crummy.com/software/Beautifu ... ation.html
Echt ein super Tipp!
Echt ein super Tipp!