Ich möchte eine Webseite analysieren, um einige Informationen darüber zu erhalten (mein genaues Problem besteht darin, alle Elemente in dieser Liste abzurufen: http://www.computerhope.com/vdef.htm).Probleme beim Parsen einer Webseite in Python
Allerdings kann ich nicht herausfinden, wie es geht.
Viele Tutorials im Internet Start mit diesem (vereinfacht): html5lib.parse(urlopen("http://www.computerhope.com/vdef.htm"))
Aber danach keiner der Tutorials erklären, wie ich das Dokument blättern und gehen den HTML-Teil ich suche.
Einige andere Tutorials erklären, wie man es mit CSSSelector
macht, aber wieder beginnen alle Tutorials nicht mit einer Webseite sondern mit einer Zeichenfolge (z. B. hier: http://lxml.de/cssselect.html). So
Ich habe versucht, einen Baum mit der Web-Seite zu erstellen dies mit: fromstring(urlopen("http://www.computerhope.com/vdef.htm").read())
aber ich habe diesen Fehler: lxml.etree.XMLSyntaxError: Specification mandate value for attribute itemscope, line 3, column 28
. Dieser Fehler ist aufgrund der Tatsache, dass es ein Attribut gibt, das nicht angegeben ist (z. B. <input attribute></input>
), aber da ich die Webseite nicht kontrolliere, kann ich es nicht umgehen.
sind also hier ein paar Fragen, die meine Probleme lösen könnte:
- Wie kann ich auf einen Baum zu sehen?
- Gibt es eine Möglichkeit, den Parser weniger streng zu machen?
Vielen Dank!
Suchen Sie nach XPath. Es ist ein sehr leistungsfähiges Werkzeug, um jede XML-ähnliche Struktur zu parsen. –
Warum verwenden Sie etree, um HTML zu analysieren? –