Seite 1 von 1
html5lib, ElementTree...
Verfasst: Freitag 12. September 2008, 10:57
von __marcus__
Hm, ja, ich bin da wohl ein wenig begriffsstutzig...
Code: Alles auswählen
import html5lib
from html5lib import treebuilders
from xml.etree import cElementTree
f = open("spiegel.html")
parser = html5lib.HTMLParser(tree=treebuilders.getTreeBuilder("etree", cElementTree))
document = parser.parse(f)
Was muss ich denn jetzt z.B. machen, um mir einfach mal alle Elemente der Website anzuschauen?
Re: html5lib
Verfasst: Freitag 12. September 2008, 11:16
von Leonidas
__marcus__ hat geschrieben:Was muss ich denn jetzt z.B. machen, um mir einfach mal alle Elemente der Website anzuschauen?
Was meinst du? Das XML ausgeben?
P.S: Deine Frage ist nicht html5lib-spezifisch sondern bezieht sich eher auf ElementTree.
Verfasst: Freitag 12. September 2008, 12:29
von __marcus__
OK, hab den Titel mal geändert.
Auf jeden Fall steht im Manual z.B.
findall(path)
Finds all toplevel elements with the given tag. Same as getroot().findall(path). path is the element to look for.
Returns:
A list or iterator containing all matching elements, in section order.
Häng ich oben aber z.B.
an bekomme ich nur eine leere Liste.
Falls also jemand Beispielcode hat, wo mit html5lib HTML auseinandergenommen wird, wäre ich sehr dankbar.
Verfasst: Freitag 12. September 2008, 13:00
von Leonidas
__marcus__ hat geschrieben:
Ja, das wäre als CSS-Selektor durchgegangen. Die unterstützt ET aber nicht, das ist lxml vorbehalten. Siehe
hier, was ET so kann. Bei dir ist <html> das Wurzelelement und es hat kein <div> als Kind, sondern <head> und <body>, daher wird kein <div> gefunden.
Um das <div> zu bekommen:
Für die Zukunft: Bitte Code mitposten und zwar solchen den man direkt ausführen kann.
Verfasst: Freitag 12. September 2008, 13:31
von __marcus__
Leonidas hat geschrieben:__marcus__ hat geschrieben:
Ja, das wäre als CSS-Selektor durchgegangen. Die unterstützt ET aber nicht, das ist lxml vorbehalten. Siehe
hier, was ET so kann. Bei dir ist <html> das Wurzelelement und es hat kein <div> als Kind, sondern <head> und <body>, daher wird kein <div> gefunden.
Um das <div> zu bekommen:
Für die Zukunft: Bitte Code mitposten und zwar solchen den man direkt ausführen kann.
Vielen Dank für die Mühe.