Seite 1 von 1
Bestimmte Zeile auslesen [URL]
Verfasst: Samstag 24. April 2010, 09:10
von The_Net
Hallo,
Wenn ich eine HTML-Seite online habe, kann ich auf diese mittels urllib zugreifen. Nun möchte ich aber in dem nicht gerade kurzen Dokument einen Wert in einer bestimmten Zeile, an einer bestimmten Stelle auslesen, und diesen dann ohne Tags ausgeben. Wie funktioniert das?
mfg
Verfasst: Samstag 24. April 2010, 10:45
von lunar
Nutze einen HTML-Parser (e.g. html5lib, lxml.html)
Verfasst: Samstag 24. April 2010, 11:14
von The_Net
Ich habe ein Beispiel im Forum gefunden und dieses kurzerhand kopiert.
Code: Alles auswählen
import urllib,re
urllib.urlretrieve("URL","C:/doc.htm")
text = open("C:/doc.html").read()
out = re.search("<td>Name:</td><td>(.*?)</td>",text)
text = text.group()
print text
Das ganze funktioniert ganz gut, nur wird alles ausgegeben (<td>Name:</td><td>(.*?)</td>) und nicht nur das, was mit Regex abgefangen wird. Wie wird nur das gewünschte ausgegeben? Sicher, man könnte am Anfang und am Ende die Tags entfernen, nur gibt es eine schönere Methode?
Verfasst: Samstag 24. April 2010, 11:16
von Dav1d
Hier ist das mit den "groups" beschrieben: [mod]re#re.MatchObject.group[/mod]
Verfasst: Samstag 24. April 2010, 15:51
von Hyperion
The_Net hat geschrieben:
Das ganze funktioniert ganz gut, nur wird alles ausgegeben (<td>Name:</td><td>(.*?)</td>) und nicht nur das, was mit Regex abgefangen wird.
Das ist ja eben alles, was Du mit der RegExp "abfängst"
Wie wird nur das gewünschte ausgegeben? Sicher, man könnte am Anfang und am Ende die Tags entfernen, nur gibt es eine schönere Methode?
Ja, einen HTML-Parser verwenden, wie oben empfohlen
