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.
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
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:
Gebruik de PyQuery
bibliotheek om de bovenstaande HTML-inhoud te lezen.
ulMain = pq ("
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.
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')
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.
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
.
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)
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
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 WereldWelkom
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
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.