In diesem Tutorial werden Sie einen Blick darauf werfen PyQuery
, eine Python-Bibliothek, mit der Sie jQuery-Abfragen für XML-Dokumente ausführen können. Syntaktisch ist es jQuery sehr ähnlich, und wenn Sie mit jQuery vertraut sind, sollte es einfacher zu folgen sein.
Um mit anzufangen PyQuery
, Installieren Sie das Python-Paket mit PIP.
pip install pyquery
Sobald Sie installiert haben PyQuery
, Importiere es in das Python-Programm.
aus pyquery importieren Sie PyQuery als pq
Beginnen wir mit einem grundlegenden Beispiel, wie es funktioniert. Betrachten Sie folgendes HTML:
Hallo Welt
Übergeben Sie die Eingabe-XML an die PyQuery
Objekt und Sie sollten in der Lage sein, jQuery-Stilabfragen darauf anzuwenden.
divMain = pq ("Hallo Welt")
Annehmen divMain
als jQuery-Objekt und drucken Sie den HTML-Inhalt des div.
print divMain ('# divMain'). html ()
Speichern Sie die Änderungen und versuchen Sie, das Programm auszuführen. Sie sollten die folgende Ausgabe haben:
Hallo Welt
Zugriff auf die Hallo Welt
Text aus dem Inneren des Bereichs, der Code wäre:
divMain drucken ('# divMain'). text ()
Speichern Sie die Änderungen und versuchen Sie, den Code auszuführen. Sie sollten die folgende Ausgabe haben:
Hallo Welt
Schauen wir uns nun an, wie Sie die Attribute mit Hilfe von lesen PyQuery
Bibliothek. Angenommen, Sie haben ein HTML-Element wie gezeigt:
Verwenden Sie die PyQuery
Bibliothek, um den obigen HTML-Inhalt zu lesen.
ulMain = pq ("
Versuchen wir, auf das ID-Attribut von zuzugreifen ulMain
ul.
print ulMain.attr ('id')
Speichern Sie die obigen Änderungen und führen Sie das Python-Programm aus. Sie sollten eine ID haben ulMain
auf dem Terminal gedruckt.
Sie haben gesehen, wie Sie auf das ID-Attribut der ul ulMain
. Versuchen wir, einen Klassennamen für diesen Wert festzulegen ulMain
Element. Um ein Klassennamensattribut anzugeben, müssen Sie den Attributnamen und den entsprechenden Wert wie folgt angeben:
ulMain.attr ('class', 'testclass')
Drucken Sie die ulMain
Objekt und Sie sollten das Element mit dem Klassenattribut haben.
Sie können Klassen auch direkt hinzufügen und entfernen, ohne die attr
Methode. Um dem Element eine Klasse hinzuzufügen, können Sie die Methode verwenden addClass
.
ulMain.addClass ('test')
Um eine vorhandene Klasse aus dem Element zu entfernen, können Sie das verwenden removeClass
Methode.
ulMain.removeClass ('test')
Abgesehen von Attributen hätte das Element einige CSS-Eigenschaften. Um die CSS-Eigenschaften hinzuzufügen oder zu ändern, können Sie das verwenden css
Methode und geben Sie die Eigenschaften an. Angenommen, Sie möchten die Höhe im Stil von ul festlegen ulMain
. Der folgende Code fügt dem Element die erforderlichen Stileigenschaften hinzu.
ulMain.css ('height', '100px')
Speichern Sie die obigen Änderungen und versuchen Sie, das Python-Programm auszuführen. Sie sollten die ul haben ulMain
zusammen mit dem neuen Stil gedruckt.
Um dem Element mehrere Stile hinzuzufügen, können Sie sie wie folgt angeben:
ulMain.css ('height': '100px', 'width': '100px')
Führen Sie das Programm aus, und Sie sollten die Stile zum hinzugefügt haben ulMain
.
Während der dynamischen Elementerstellung müssen Sie neue Elemente erstellen und an das vorhandene übergeordnete Element anhängen, wo sie gerendert werden. Schauen wir uns an, wie man Elemente mit erstellt und anfügt PyQuery
.
Angenommen, Sie haben einen main-Container div aufgerufen divMain
.
divMain = pq ("")
Erstellen Sie ein neues Span-Element mit PyQuery
.
span = pq ('Hallo Welt')
Fügen Sie dem Bereich einige CSS-Eigenschaften hinzu.
span.css ('color': 'blue', 'font-weight': 'fett')
PyQuery
stellt eine Methode zum Hinzufügen von Elementen zu vorhandenen Elementen bereit. Du kannst den ... benutzen anhängen
Methode, um das span-Element an das div anzuhängen divMain
. Hier ist der Code:
divMain.append (span) print divMain
Speichern Sie die Änderungen und führen Sie das Programm aus. Sie sollten das sehen können divMain
mit dem neu erstellten Bereich gedruckt wird.
Hallo Welt
Sie haben die Append-Methode verwendet, um die Spanne an das div anzuhängen. Sie haben eine andere alternative Methode aufgerufen Anhängen
was die Knoten an Wert anhängen würde. Im obigen Fall können Sie die Methode wie folgt verwenden:
span.appendTo (divMain)
PyQuery
stellt Methoden zum Suchen von untergeordneten Elementen, der nächsten Elemente, der nächsten Elemente usw. bereit. Außerdem werden Methoden zum Filtern und Suchen von Elementen in einem bestimmten Knoten bereitgestellt.
Angenommen, Sie haben ein bestimmtes HTML-Stück wie gezeigt:
- Jade
- Jim
Hallo Welt
Fügen Sie das folgende HTML hinzu PyQuery
Objekt:
divMain = pq (""+"")"+""+""+"
""- Jade
"+"- Jim
"+""+"Hallo Welt"""+"
Lass uns benutzen PyQuery
um die Kinder des div zu finden divMain
. Fügen Sie die folgende Codezeile hinzu, um die untergeordneten Elemente zu drucken divMain
.
print divMain.children ()
Beim Ausführen des Programms sollten Sie die folgende Ausgabe haben:
- Jade
- Jim
Hallo Welt
Um das Element, das einem Element am nächsten ist, zu finden, können Sie die Methode verwenden am nächsten
. Um das am nächsten liegende div-Element zu finden, lautet der Code:
print divMain ('span'). am nächsten ('div')
Der obige Befehl würde die folgende Ausgabe zurückgeben:
Hallo Welt
EIN finden
Es gibt auch eine Methode, um die Elemente zu finden. Zum Beispiel, um eine Spanne innerhalb der zu finden divMain
, Sie müssen die Methode wie gezeigt aufrufen:
print divMain.find ('span')
Der obige Befehl würde die Spanne zurückgeben.
Hallo Welt
Während anhängen
Fügt man den vorhandenen Elementen Elemente hinzu, müssen Sie manchmal Elemente nach oder vor bestimmten Elementen einfügen. PyQuery
bietet eine Methode zum Einfügen von Elementen vor oder nach anderen Elementen.
Definieren Sie ein neues Absatzelement, das nach dem Bereich innerhalb von eingefügt wird divMain
div.
p = pq ('Herzlich willkommen
')
Ruf den insertAfter
Methode im Absatz p
Element, um es nach dem Span einzufügen.
p.insertAfter (divMain ('span')) druckt divMain
Speichern Sie die obigen Änderungen und führen Sie das Python-Programm aus. Sie sollten die folgende Ausgabe haben:
- Jade
- Jim
Hallo WeltHerzlich willkommen
Ebenso haben Sie die insertBefore
Methode, die vor dem Element eingefügt wird. Ändern Sie den Code wie unten gezeigt, um den Code zu verwenden insertBefore
Methode:
p.insertBefore (divMain ('span')) druckt divMain
Speichern Sie die Änderungen und führen Sie das Programm aus. Sie sollten die folgende Ausgabe auf dem Terminal sehen können:
- Jade
- Jim
Herzlich willkommen
Hallo Welt
In diesem Lernprogramm haben Sie gesehen, wie Sie damit beginnen PyQuery
, eine Python-Bibliothek, mit der Sie jQuery-Abfragen für XML-Dokumente ausführen können. Sie haben gesehen, wie Sie die Attribute und CSS-Stile der HTML-Elemente bearbeiten.
Sie haben gelernt, wie Sie Elemente erstellen und an vorhandene Elemente anhängen und neue Elemente vor und nach Elementen einfügen. Was Sie in diesem Tutorial gesehen haben, ist nur die Spitze des Eisbergs, und diese Bibliothek bietet noch viel mehr.
Für genauere Informationen zur Verwendung dieser Bibliothek würde ich empfehlen, die offizielle Dokumentation zu lesen. Teilen Sie uns Ihre Vorschläge in den Kommentaren mit.