Wie man HTML mit PyQuery analysiert und kratzt

Wie man HTML mit PyQuery analysiert und kratzt
"PyQuery" ist ein Python-Modul von Drittanbietern, mit dem Sie Daten aus "XML" und "HTML" -Dokumenten analysieren und extrahieren können. Es ist von der Jquery JavaScript -Bibliothek inspiriert und verfügt über eine nahezu identische Syntax. Dieser Artikel behandelt eine einfache Anleitung zu PyQuery, mit der Sie mit dem Modul beginnen können.

PyQuery -Installation

Verwenden Sie zum Installieren von PyQuery in Ubuntu den unten angegebenen Befehl:

$ sudo APT Installieren Sie Python3-PyQuery

Sie können auch die neueste Version von PyQuery vom PIP -Paketmanager „PIP“ installieren, indem Sie die folgenden zwei Befehle nacheinander ausführen:

$ sudo APT installieren Sie Python3-Pip
$ pip3 pyQuery installieren

Installieren Sie PyQuery in anderen Linux -Verteilungen, installieren Sie „PIP3“ im Paketmanager und führen Sie den oben genannten zweiten Befehl aus.

Erstellen eines Parsable -Dokumentbaums

Bevor Sie Daten aus einem HTML -Dokument analysieren und extrahieren können, müssen Sie einen Dokumentbaum erstellen. Sie können einen Dokumentbaum aus einem einfachen HTML -Markup mit dem folgenden Code -Beispiel erstellen:

von PyQuery import PyQuery als PQ
document = pq ("Hallo Welt !!"))
Dokument drucken)
Druck (Typ (Dokument))

Die erste Aussage importiert die Klasse „PyQuery“ aus dem Modul „PyQuery“. Als nächstes wird eine neue Instanz der PyQuery -Klasse erstellt. Nachdem Sie das Code -Beispiel oben ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Beachten Sie die zweite Zeile in der Ausgabe. Hier gibt „Dokument“, das eine Instanz der "PyQuery" -Klasse ist. Sie können alle für die „Dokument“ verfügbaren Methoden schnell abfragen, indem Sie dem obigen Code -Beispiel die folgende zusätzliche Zeile hinzufügen:

von PyQuery import PyQuery als PQ
document = pq ("Hallo Welt !!"))
Druck (Hilfe (Dokument))

Sie können auch die API für die PyQuery -Klasse online durchsuchen.

Verwenden Sie stattdessen den folgenden Code (ersetzen Sie "URL" durch Ihre eigene gewünschte Adresse):

von PyQuery import PyQuery als PQ
document = pq (url = 'https: // Beispiel.com '))
Dokument drucken)

Verwenden Sie den folgenden Code (ersetzen Sie den Wert von „Dateiname“ entsprechend Ihren Anforderungen), um eine lokale HTML -Datei mit Dokumentbaum zu erstellen):

von PyQuery import PyQuery als PQ
document = pq (Dateiname = 'Index.html ')
Dokument drucken)

Nachdem Sie einen Dokumentbaum haben, können Sie ihn analysieren.

Manipulation des Dokumentbaums

Sie können Daten extrahieren und Dokumentbäume mit einer Vielzahl von Methoden manipulieren. Einige der häufigsten Methoden sind unten mit Proben aufgeführt. Für alle nutzbaren Methoden finden Sie in der hier verfügbaren API.

Sie können "Text" -Methode verwenden, um Textinhalte eines Elements zu erhalten:

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
Druck (p.Text())

Sie können ein bestimmtes Tag / Element auswählen, indem Sie seinen Namen als Argument für die Instanz „Dokument“ angeben. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Sie können Attribute eines Tags mit der „Attr“ -Methode verwenden. Wählen Sie dazu ein Tag aus, das Sie in diesem Fall analysieren möchten ('P'.

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
Dokument drucken)
Druck (p.attr ("id"), p.Attr.Ausweis)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Sie können CSS mit der „CSS“ -Methode manipulieren. CSS -Stile hinzufügen

oder jedes andere Tag können Sie den folgenden Code verwenden:

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
P.CSS ("Farbe": "Red")
Dokument drucken)
Druck (p.Attr ("Stil"))

Ersetzen Sie "" Farbe ":" rot "" Teil durch Ihre eigenen benutzerdefinierten Stile. Nach dem Ausführen des obigen Code -Beispiels sollten Sie die folgende Ausgabe erhalten und überprüfen, ob CSS korrekt angewendet wurde:

Hallo Welt !!


Farbe Rot

Wenn Sie eine vorgeschriebene Klasse haben, können Sie einfach die Methode „AddClass“ verwenden, um vorhandene Stile anzuwenden.

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
P.AddClass ("Mystyle")

Sie können Ihr eigenes benutzerdefiniertes Markup mit dem folgenden Code -Beispiel anhängen und vorbereiten:

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
P.sich vorbereiten ("

Hallo

"))
P.anhängen ("

Tschüss

"))
Dokument drucken)

Ersetzen Sie Argumente in der Methode „Prepend“ und „Anhängen“ durch Ihre eigenen Werte. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo

Hallo Welt !!

Tschüss

Verwenden Sie, um die Inhalte eines Elements zu entfernen, die „leere“ Methode.

von PyQuery import PyQuery als PQ
document = pq ("

Hallo Welt !!

"))
p = document ('p')
P.leer()
Dokument drucken)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Sie können die Methode "Filter" verwenden, um bestimmte Elemente auszuwählen, wenn mehrere Tags desselben Typs vorhanden sind. Zum Beispiel nimmt der folgende Code eine “auf"

"Tag mit einer" ID "als" Hallo ":

von PyQuery import PyQuery als PQ
document = pq ("

Hallo

Welt !!

"))
p = document ('p')
Druck (p.filter ("#Hallo"))

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo

Sie können mehrere Tags / Elemente gleichzeitig mit der „Find“ -Methode finden:

von PyQuery import PyQuery als PQ
document = pq ("

Hallo

Welt !!

"))
Dokument drucken.Finden Sie ('P'))

Geben Sie den Tag / Elementnamen als Argument an die „Find“ -Methode an. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo

Welt !!

Sie können zwischen "XML" und "HTML" -Parsers wechseln, indem Sie ein zusätzliches "Parser" -Argument verwenden:

von PyQuery import PyQuery als PQ
document = pq ("

Hallo

Welt !!

", parser =" html ")
Dokument drucken)

Wenn Sie weitere Hilfe bei PyQuery benötigen, lesen Sie die offiziellen Dokumentationen und Beispiele, die hier verfügbar sind.

Abschluss

Mit PyQuery können Sie HTML -Dokumente schnell analysieren, indem Sie Mindestcode schreiben, da er zahlreiche Helferfunktionen enthält, die die Notwendigkeit des Schreibens benutzerdefinierter Code vollständig auslassen. Seine „jQuery“ wie Syntax und Struktur hilft auch bei der Auswahl von Elementen und Knoten, ohne tiefer in den Dokumentbaum zu gehen, insbesondere wenn viel verschachtelte Markup vorhanden ist.