Python

Wie man HTML mit Pyquery parst und scrapt

Wie man HTML mit Pyquery parst und scrapt
„Pyquery“ ist ein Python-Modul eines Drittanbieters, 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, sodass Sie viele Hilfsfunktionen und Kurzcode verwenden können, um den Dokumentbaum zu analysieren und zu manipulieren. Dieser Artikel behandelt eine einfache Anleitung zu Pyquery, die Ihnen den Einstieg in das Modul erleichtert.

Pyquery-Installation

Um Pyquery in Ubuntu zu installieren, verwenden Sie den unten angegebenen Befehl:

$ sudo apt install python3-pyquery

Sie können die neueste Version von Pyquery auch über den Paketmanager „pip“ installieren, indem Sie die folgenden beiden Befehle nacheinander ausführen:

$ sudo apt install python3-pip
$ pip3 pyquery installieren

Um Pyquery in anderen Linux-Distributionen zu installieren, installieren Sie „pip3“ über den Paketmanager und führen Sie den zweiten oben genannten Befehl aus.

Erstellen eines analysierbaren 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 erstellen, indem Sie das folgende Codebeispiel verwenden:

aus Pyquery importieren PyQuery als pq
document = pq("Hallo Welt !!")
Dokument drucken)
drucken (Typ (Dokument))

Die erste Anweisung importiert die Klasse „PyQuery“ aus dem Modul „pyquery“. Als Nächstes wird eine neue Instanz der PyQuery-Klasse erstellt. Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Beachten Sie die zweite Zeile in der Ausgabe. Hier gibt „document“, das eine Instanz der Klasse „PyQuery“ ist, kein Objekt vom Typ String zurück. Sie können schnell alle verfügbaren Methoden für die Instanz "Dokument" abfragen, indem Sie dem obigen Codebeispiel die folgende zusätzliche Zeile hinzufügen:

aus Pyquery importieren PyQuery als pq
Dokument = pq("Hallo Welt !!")
drucken (Hilfe(Dokument))

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

Um einen Dokumentenbaum aus einer URL zu erstellen, verwenden Sie stattdessen den folgenden Code (ersetzen Sie „url“ durch Ihre eigene gewünschte Adresse):

aus Pyquery importieren PyQuery als pq
document = pq(url='https://Beispiel.com")
Dokument drucken)

Um eine Dokumentbaumstruktur aus einer lokalen HTML-Datei zu erstellen, verwenden Sie den folgenden Code (ersetzen Sie den Wert von „Dateiname“ entsprechend Ihren Anforderungen):

aus Pyquery importieren PyQuery als pq
document = pq(filename='index.html')
Dokument drucken)

Nachdem Sie nun einen Dokumentenbaum haben, können Sie mit dem Parsen beginnen.

Bearbeiten des Dokumentenbaums

Sie können mit einer Vielzahl von Methoden Daten extrahieren und Dokumentbäume bearbeiten. Einige der gängigsten Methoden sind unten mit Beispielen aufgeführt. Alle verwendbaren Methoden finden Sie in der hier verfügbaren API.

Sie können die Methode "text" verwenden, um den Textinhalt eines Elements abzurufen:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

")
p = Dokument('p')
drucken (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 Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Sie können Attribute eines Tags abrufen, indem Sie die Methode „attr“ verwenden. Wählen Sie dazu ein Tag aus, das Sie analysieren möchten (in diesem Fall 'p') und geben Sie den Attributnamen als Argument an (in diesem Fall 'id') oder verwenden Sie die Punktnotation.

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

")
p = Dokument('p')
Dokument drucken)
drucken (p.attr("id"), p.attr.Ich würde)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo Welt !!

Sie können CSS mit der Methode „css“ bearbeiten. So fügen Sie CSS-Stile zu . hinzu

oder ein anderes Tag verwenden, können Sie den folgenden Code verwenden:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

")
p = Dokument('p')
p.css("color": "red")
Dokument drucken)
drucken (p.attr("Stil"))

Ersetzen Sie den Teil ""color": "red"" durch Ihre eigenen benutzerdefinierten Stile. Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten und können überprüfen, ob CSS korrekt angewendet wurde:

Hallo Welt !!


Farbe Rot

Wenn Sie eine vorgestylte Klasse haben, können Sie einfach die Methode "addClass" verwenden, um vorhandene Stile anzuwenden.

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

")
p = Dokument('p')
p.addClass("mystyle")

Sie können Ihr eigenes benutzerdefiniertes Markup mit dem folgenden Codebeispiel anhängen und voranstellen:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

")
p = Dokument('p')
p.voranstellen("

Hallo

")
p.anhängen("

Tschüss

")
Dokument drucken)

Ersetzen Sie Argumente in den Methoden „prepend“ und „append“ durch Ihre eigenen Werte. Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo

Hallo Welt !!

Tschüss

Um den Inhalt eines Elements zu entfernen, verwenden Sie die „leere“ Methode.

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo Welt !!

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

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Sie können die Methode „Filter“ verwenden, um bestimmte Elemente auszuwählen, wenn mehrere Tags des gleichen Typs vorhanden sind. Der folgende Code ruft beispielsweise ein „

“-Tag mit einer „id“ als „hallo“:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo

Welt !!

")
p = Dokument('p')
drucken (p.filter("#hallo"))

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Hallo

Sie können mehrere Tags / Elemente gleichzeitig mit der Methode "find" finden:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo

Welt !!

")
Dokument drucken.find('p'))

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

Hallo

Welt !!

Sie können zwischen „xml“- und „html“-Parsern wechseln, indem Sie ein zusätzliches „Parser“-Argument verwenden:

aus Pyquery importieren PyQuery als pq
Dokument = pq("

Hallo

Welt !!

", parser="html")
Dokument drucken)

Wenn Sie weitere Hilfe zu Pyquery benötigen, lesen Sie die offizielle Dokumentation und Beispiele, die hier verfügbar sind.

Fazit

PyQuery ermöglicht das schnelle Parsen von HTML-Dokumenten durch das Schreiben von minimalem Code, da es zahlreiche Hilfsfunktionen enthält, die das Schreiben von benutzerdefiniertem Code vollständig überflüssig machen. Seine „jQuery“-ähnliche Syntax und Struktur hilft auch bei der Auswahl von Elementen und Knoten, ohne tiefer in den Dokumentbaum einzusteigen, insbesondere wenn es viel verschachteltes Markup gibt.

So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...