PyQuery PyQon's jQuery

In deze tutorial, zult u een kijkje nemen PyQuery, een Python-bibliotheek waarmee u jQuery-query's kunt uitvoeren op XML-documenten. Het is syntactisch vergelijkbaar met jQuery en als u bekend bent met jQuery, moet het gemakkelijker te volgen zijn.

Aan de slag met PyQuery

Om mee te beginnen PyQuery, installeer het Python-pakket met PIP.

pip pyquery installeren

Als je eenmaal hebt geïnstalleerd PyQuery, importeer het in het Python-programma.

van pyquery PyQuery importeren als pq

Laten we beginnen met een eenvoudig voorbeeld van hoe het werkt. Beschouw de volgende HTML: 

Hallo Wereld

Geef de invoer-XML door aan de PyQuery object en u zou in staat moeten zijn om jQuery-stijlquery's toe te passen.

divMain = pq ("
Hallo Wereld
")

Uitgaan van divMain als een jQuery-object en druk de HTML-inhoud van de div af.

print divMain ('# divMain'). html ()

Sla de wijzigingen op en probeer het programma uit te voeren. Je zou de volgende output moeten hebben:

Hallo Wereld

Om toegang te krijgen tot de Hallo Wereld tekst van binnenuit de reeks, zou de code zijn:

print divMain ('# divMain'). text ()

Sla de wijzigingen op en probeer de code uit te voeren. Je zou de volgende output moeten hebben:

Hallo Wereld

Attributen Manipulatie met PyQuery

Laten we nu eens kijken hoe de attributen te lezen met behulp van de PyQuery bibliotheek. Stel dat u een HTML-element heeft zoals getoond:

  • Roy
  • Hari

Gebruik de PyQuery bibliotheek om de bovenstaande HTML-inhoud te lezen.

ulMain = pq ("
  • Roy
  • Hari
")

Laten we proberen toegang te krijgen tot het ID-kenmerk van de ulMain ul.

print ulMain.attr ('id')

Sla de bovenstaande wijzigingen op en probeer het Python-programma uit te voeren. U moet een ID hebben ulMain afgedrukt op de terminal.

U zag hoe u toegang kreeg tot het ID-kenmerk van de ul ulMain. Laten we proberen een klassenaam voor hetzelfde in te stellen ulMain element. Om een ​​class name-attribuut op te geven, moet u de attribuutnaam en de bijbehorende waarde opgeven zoals getoond:

ulMain.attr ( 'klasse', 'TestClass')

Print de ulMain object en je zou het element met het class attribuut moeten hebben.

  • Roy
  • Hari

U kunt klassen ook rechtstreeks toevoegen en verwijderen zonder de attr methode. Om een ​​klasse aan het element toe te voegen, kunt u gebruik maken van de methode addClass

ulMain.addClass ( 'test')

Om een ​​bestaande klasse uit het element te verwijderen, kunt u gebruik maken van de removeClass methode.

ulMain.removeClass ( 'test')

CSS gebruiken met PyQuery

Afgezien van attributen, zou het element enkele CSS-eigenschappen hebben. Om de CSS-eigenschappen toe te voegen of te wijzigen, kunt u de css methode en specificeer de eigenschappen. Laten we zeggen dat je de hoogte wilt specificeren in de stijl van de ul ulMain. De volgende code zou de vereiste stijleigenschappen aan het element toevoegen.

ulMain.css ( 'hoogte', "100px)

Sla de bovenstaande wijzigingen op en probeer het Python-programma uit te voeren. Je zou de ul moeten hebben ulMain afgedrukt samen met de nieuwe stijl.

  • Roy
  • Hari

Als u meerdere stijlen aan het element wilt toevoegen, kunt u deze specificeren zoals getoond:

ulMain.css ( 'hoogte': '100px', 'width': '100px')

Voer het programma uit en u moet de stijlen toegevoegd hebben aan de ulMain.

  • Roy
  • Hari

Elementen maken en toevoegen

Tijdens het maken van dynamische elementen moet u nieuwe elementen maken en deze toevoegen aan het bestaande bovenliggende element waar ze worden weergegeven. Laten we eens kijken hoe elementen kunnen worden gemaakt en toegevoegd met behulp van PyQuery

Stel dat u een hoofd-container-div heeft genoemd divMain.

divMain = pq ("
")

Laten we een nieuw spanelement maken met PyQuery.

span = pq ('Hallo Wereld')

Voeg enkele CSS-eigenschappen toe aan de reeks.

span.css ( 'kleur': 'blue', 'font-weight': 'bold')

PyQuery biedt een methode om elementen toe te voegen aan bestaande elementen. U kunt de toevoegen methode om het spanelement aan de div toe te voegen divMain. Hier is de code:

divMain.append (bereik) divMain afdrukken

Sla de wijzigingen op en voer het programma uit. Je zou het moeten kunnen zien divMain afgedrukt met de nieuw gemaakte span toegevoegd.

Hallo Wereld

U hebt de methode toevoegen gebruikt om de reeks aan de div toe te voegen. U hebt een andere alternatieve methode genaamd appendTo die de knooppunten zou toevoegen aan de waarde. In het bovenstaande geval kunt u de methode als volgt gebruiken:

span.appendTo (divMain)

Elementen vinden met PyQuery

PyQuery biedt methoden om kinderen te vinden, de volgende elementen, de dichtstbijzijnde elementen, enz. Het biedt ook methoden om elementen in een bepaald knooppunt te filteren en te vinden.

Stel dat je een bepaald stuk HTML hebt zoals getoond:

  • Jade
  • Jim
Hallo Wereld

Voeg de volgende HTML toe aan de PyQuery voorwerp:

divMain = pq ("
"+"
"+"
    "+"
  • Jade
  • "+"
  • Jim
  • "+"
""
"+"
"+"Hallo Wereld""
"+"
")

Laten we gebruiken PyQuery om de kinderen van de div te vinden divMain. Voeg de volgende regel code toe om de kinderen van af te drukken divMain.

print divMain.children ()

Bij het uitvoeren van het programma zou u de volgende uitvoer moeten hebben:

  • Jade
  • Jim
Hallo Wereld

Om het element dat het dichtst bij een element staat te vinden, kunt u de methode gebruiken dichtstbijzijnde. Om het dichtstbijzijnde div-element voor de reeks te vinden, zou de code zijn:

print divMain ('span'). closest ('div')

Het bovenstaande commando zou de volgende uitvoer teruggeven:

Hallo Wereld

EEN vind methode is ook beschikbaar om de elementen te vinden. Om bijvoorbeeld een span te vinden binnen de divMain, je moet de methode bellen zoals getoond:

print divMain.find ('span')

Het bovenstaande commando zou de overspanning teruggeven.

Hallo Wereld

Voeg een element in HTML in

Terwijl toevoegen doet het werk van het toevoegen van elementen aan de bestaande elementen, soms moet je elementen invoegen na of voor bepaalde elementen. PyQuery biedt een methode om elementen in te voegen voor of na andere elementen.

Laten we een nieuw paragraaf-element definiëren dat moet worden ingevoegd na de reeks binnen de divMain div.

p = pq ('

Welkom

')

Bel de InsertAfter methode voor de alinea p element om het na de overspanning in te voegen.

p.insertAfter (divMain ('span')) print divMain

Sla de bovenstaande wijzigingen op en voer het Python-programma uit. Je zou de volgende output moeten hebben:

  • Jade
  • Jim
Hallo Wereld

Welkom

Op dezelfde manier heb je de insertBefore methode, die vóór het element invoegt. Wijzig de code zoals hieronder getoond om de insertBefore methode: 

 p.insertBefore (divMain ('span')) print divMain 

Sla de wijzigingen op en voer het programma uit. U zou de volgende uitvoer op de terminal moeten kunnen zien:

  • Jade
  • Jim

Welkom

Hallo Wereld

Inpakken

In deze zelfstudie zag u hoe u aan de slag ging PyQuery, een Python-bibliotheek waarmee u jQuery-query's kunt uitvoeren op XML-documenten. Je zag hoe de attributen en CSS-stijlen van de HTML-elementen te manipuleren. 

Je hebt geleerd hoe je elementen aan bestaande elementen kunt toevoegen en toevoegen en nieuwe elementen vóór en na elementen kunt invoegen. Wat je in deze tutorial hebt gezien, is slechts het topje van de ijsberg en er is veel meer dat deze bibliotheek te bieden heeft.

Voor meer informatie over het gebruik van deze bibliotheek, raad ik u aan de officiële documentatie te lezen. Laat ons uw suggesties weten in de opmerkingen hieronder.