I denne opplæringen vil du se på PyQuery
, et Python-bibliotek som lar deg lage jQuery-spørringer på XML-dokumenter. Synaktisk er det ganske lik jQuery, og hvis du er kjent med jQuery, bør det være lettere å følge.
Å komme i gang med PyQuery
, installer Python-pakken ved hjelp av PIP.
pip install pyquery
Når du har installert PyQuery
, importer det til Python-programmet.
fra pyquery import PyQuery som pq
La oss starte med et grunnleggende eksempel på hvordan det fungerer. Vurder følgende HTML:
Hei Verden
Pass input XML til PyQuery
objekt og du bør kunne bruke jQuery stil spørringer til den.
divMain = pq ("Hei Verden")
Anta divMain
som et jQuery-objekt og skriv ut HTML-innholdet i div.
skriv ut divMain ('# divMain'). html ()
Lagre endringene og prøv å kjøre programmet. Du bør ha følgende utgang:
Hei Verden
Å få tilgang til Hei Verden
tekst fra innsiden av spenningen, vil koden være:
skriv ut divMain ('# divMain'). tekst ()
Lagre endringene og prøv å kjøre koden. Du bør ha følgende utgang:
Hei Verden
La oss nå se på hvordan du leser attributter ved hjelp av PyQuery
bibliotek. Anta at du har et HTML-element som vist:
Bruke PyQuery
bibliotek for å lese HTML-innholdet ovenfor.
ulMain = pq ("
La oss prøve å få tilgang til ID-attributtet til ulMain
ul.
skriv ut ulMain.attr ('id')
Lagre endringene ovenfor og prøv å kjøre Python-programmet. Du bør ha ID ulMain
trykt på terminalen.
Du så hvordan du får tilgang til ID-attributtet til ul ulMain
. La oss prøve å sette et klassenavn for det samme ulMain
element. For å angi et klassenavnetattributt må du angi attributtens navn og tilhørende verdi som vist:
ulMain.attr ( 'klasse', 'testclass')
Skriv ut ulMain
objekt og du bør ha elementet med klassen attributtet.
Du kan også legge til og fjerne klasser direkte uten å bruke attr
metode. Hvis du vil legge til en klasse i elementet, kan du bruke metoden addClass
.
ulMain.addClass ( 'test')
For å fjerne en eksisterende klasse fra elementet, kan du gjøre bruk av removeClass
metode.
ulMain.removeClass ( 'test')
Bortsett fra attributter, ville elementet ha noen CSS egenskaper. For å legge til eller endre CSS egenskaper, kan du bruke css
metode og spesifiser egenskapene. La oss si at du vil spesifisere høyden i stilen til ul ulMain
. Følgende kode vil legge til de nødvendige stilegenskapene til elementet.
ulMain.css ( 'høyde', '100 piksler')
Lagre endringene ovenfor og prøv å utføre Python-programmet. Du burde ha ul ulMain
trykt sammen med den nye stilen.
For å legge til flere stilarter til elementet, kan du angi dem som vist:
ulMain.css ( 'høyde': '100 piksler', 'bredde': '100 piksler')
Kjør programmet, og du bør ha stilene lagt til ulMain
.
Under dynamisk elementopprettelse må du opprette nye elementer og legge dem til det eksisterende overordnet elementet der de skal gjengis. La oss se på hvordan du lager og legger til elementer ved hjelp av PyQuery
.
Anta at du har en hoved container div kalt divMain
.
divMain = pq ("")
La oss lage et nytt spenningselement ved hjelp av PyQuery
.
span = pq ('Hei Verden')
Legg til noen CSS-egenskaper i spekteret.
span.css ( 'farge': 'blå', 'font-vekt': 'bold')
PyQuery
Gir en metode for å legge til elementer i eksisterende elementer. Du kan bruke føyer
metode for å legge til spenningselementet til div divMain
. Her er koden:
divMain.append (span) print divMain
Lagre endringene og kjøre programmet. Du bør kunne se divMain
trykt med det nyopprettede spekteret vedlagt det.
Hei Verden
Du brukte append-metoden til å legge til spenningen til div. Du har en annen alternativ metode kalt appendTo
som ville legge til noder å verdsette. I det ovennevnte tilfellet kan du bruke metoden slik:
span.appendTo (divMain)
PyQuery
gir metoder for å finne barn, de neste elementene, de nærmeste elementene, etc. Det gir også metoder for å filtrere og finne elementer inne i en bestemt node.
Anta at du har et bestemt stykke HTML som vist:
- jade
- Jim
Hei Verden
Legg til følgende HTML for PyQuery
gjenstand:
divMain = pq (""+"")"+""+""+"
""- jade
"+"- Jim
"+""+"Hei Verden"""+"
La oss bruke PyQuery
for å finne barn av div divMain
. Legg til følgende linje med kode for å skrive ut barna til divMain
.
skriv ut divMain.children ()
Når du kjører programmet, bør du ha følgende utgang:
- jade
- Jim
Hei Verden
For å finne det nærmeste elementet til et element, kan du bruke metoden nærmeste
. For å finne det nærmeste div-elementet til spenningen, ville koden være:
skriv ut divMain ('span'). nærmest ('div')
Kommandoen ovenfor vil returnere følgende utgang:
Hei Verden
EN finne
Metoden er også tilgjengelig for å finne elementene. For eksempel, for å finne et span inne i divMain
, du må ringe metoden som vist:
skriv ut divMain.find ('span')
Ovennevnte kommando vil returnere spenningen.
Hei Verden
Samtidig som føyer
gjør arbeidet med å legge til elementer til de eksisterende elementene, noen ganger må du sette inn elementer etter eller før enkelte elementer. PyQuery
Gir en metode for å sette inn elementer før eller etter andre elementer.
La oss definere et nytt avsnittelement som skal settes inn etter spenningen inne i divMain
div.
p = pq ('Velkommen
')
Ring insertAfter
metode på avsnittet p
element for å sette det inn etter spenningen.
p.insertAfter (divMain ('span')) print divMain
Lagre endringene ovenfor og kjør Python-programmet. Du bør ha følgende utgang:
- jade
- Jim
Hei VerdenVelkommen
På samme måte har du insertBefore
metode, som setter inn før elementet. Endre koden som vist nedenfor for å bruke insertBefore
metode:
p.insertFor (divMain ('span')) skriv ut divMain
Lagre endringene og kjøre programmet. Du bør kunne se følgende utgang på terminalen:
- jade
- Jim
Velkommen
Hei Verden
I denne veiledningen så du hvordan du kommer i gang med PyQuery
, et Python-bibliotek som lar deg lage jQuery-spørringer på XML-dokumenter. Du så hvordan du kan manipulere attributter og CSS-stiler i HTML-elementene.
Du lærte å lage og legge til elementer i eksisterende elementer og sette inn nye elementer før og etter elementer. Det du så i denne opplæringen er bare toppen av isfjellet, og det er mye mer som dette biblioteket har å tilby.
For mer detaljert informasjon om bruk av dette biblioteket, vil jeg anbefale å lese den offisielle dokumentasjonen. Gi oss beskjed om dine forslag i kommentarene nedenfor.