In questo tutorial, avrai uno sguardo PyQuery
, una libreria Python che ti permette di creare query jQuery su documenti XML. Sinteticamente è abbastanza simile a jQuery, e se hai familiarità con jQuery dovrebbe essere più facile da seguire.
Per iniziare PyQuery
, installa il pacchetto Python usando PIP.
pip installa pyquery
Una volta installato PyQuery
, importalo nel programma Python.
da Pyquery importa PyQuery come pq
Iniziamo con un esempio di base di come funziona. Considera il seguente codice HTML:
Ciao mondo
Passa l'XML di input a PyQuery
oggetto e dovresti essere in grado di applicare query di stile jQuery su di esso.
divMain = pq ("Ciao mondo")
Assumere divMain
come oggetto jQuery e stampare il contenuto HTML del div.
stampa divMain ('# divMain'). html ()
Salva le modifiche e prova a eseguire il programma. Dovresti avere il seguente output:
Ciao mondo
Per accedere a Ciao mondo
testo dall'interno dello span, il codice sarebbe:
stampa divMain ('# divMain'). text ()
Salva le modifiche e prova a eseguire il codice. Dovresti avere il seguente output:
Ciao mondo
Ora diamo un'occhiata a come leggere gli attributi usando il PyQuery
biblioteca. Supponiamo di avere un elemento HTML come mostrato:
Utilizzare il PyQuery
libreria per leggere il contenuto HTML di cui sopra.
ulMain = pq ("
Proviamo ad accedere all'attributo ID di ulMain
ul.
stampa ulMain.attr ('id')
Salvare le modifiche precedenti e provare a eseguire il programma Python. Dovresti avere un ID ulMain
stampato sul terminale.
Hai visto come accedere all'attributo ID dell'ul ulMain
. Proviamo a impostare un nome di classe per lo stesso ulMain
elemento. Per specificare un attributo del nome della classe, è necessario specificare il nome dell'attributo e il valore corrispondente come mostrato:
ulMain.attr ( 'classe', 'TestClass')
Stampa il ulMain
oggetto e dovresti avere l'elemento con l'attributo class.
È inoltre possibile aggiungere e rimuovere classi direttamente senza utilizzare il attr
metodo. Per aggiungere una classe all'elemento, puoi utilizzare il metodo addClass
.
ulMain.addClass ( 'test')
Per rimuovere una classe esistente dall'elemento, puoi fare uso di removeClass
metodo.
ulMain.removeClass ( 'test')
Oltre agli attributi, l'elemento avrebbe alcune proprietà CSS. Per aggiungere o modificare le proprietà CSS, è possibile utilizzare css
metodo e specificare le proprietà. Diciamo che vuoi specificare l'altezza nello stile di ul ulMain
. Il seguente codice aggiungerebbe le proprietà di stile richieste all'elemento.
ulMain.css ( 'height', '100px')
Salvare le modifiche precedenti e provare a eseguire il programma Python. Dovresti avere l'ul ulMain
stampato insieme al nuovo stile.
Per aggiungere più stili all'elemento, puoi specificarli come mostrato:
ulMain.css ( 'height': '100px', 'width': '100px')
Esegui il programma e dovresti avere gli stili aggiunti al ulMain
.
Durante la creazione di elementi dinamici, è necessario creare nuovi elementi e aggiungerli all'elemento padre esistente in cui verranno renderizzati. Diamo un'occhiata a come creare e aggiungere elementi usando PyQuery
.
Supponi di avere un div contenitore principale chiamato divMain
.
divMain = pq ("")
Creiamo un nuovo elemento span usando PyQuery
.
span = pq ('Ciao mondo')
Aggiungi alcune proprietà CSS all'intervallo.
span.css ( 'colore': 'blu', 'font-weight': 'bold')
PyQuery
fornisce un metodo per aggiungere elementi a elementi esistenti. Puoi usare il aggiungere
metodo per aggiungere l'elemento span al div divMain
. Ecco il codice:
divMain.append (span) print divMain
Salva le modifiche ed esegui il programma. Dovresti essere in grado di vedere il divMain
stampato con lo span appena creato aggiunto ad esso.
Ciao mondo
Hai usato il metodo append per aggiungere lo span al div. Hai un altro metodo alternativo chiamato appendTo
che aggiungerebbe i nodi al valore. Nel caso precedente puoi usare il metodo in questo modo:
span.appendTo (divMain)
PyQuery
fornisce metodi per trovare i bambini, gli elementi successivi, gli elementi più vicini, ecc. Fornisce anche metodi per filtrare e trovare elementi all'interno di un nodo particolare.
Supponiamo che tu abbia un particolare pezzo di HTML come mostrato:
- Giada
- Jim
Ciao mondo
Aggiungi il seguente codice HTML al file PyQuery
oggetto:
divMain = pq (""+"")"+""+""+"
""- Giada
"+"- Jim
"+""+"Ciao mondo"""+"
Usiamo PyQuery
per trovare i bambini del div divMain
. Aggiungi la seguente riga di codice per stampare i figli di divMain
.
stampa divMain.children ()
Durante l'esecuzione del programma, dovresti avere il seguente output:
- Giada
- Jim
Ciao mondo
Per trovare l'elemento più vicino a un elemento, puoi usare il metodo più vicina
. Per trovare l'elemento div più vicino allo span, il codice sarebbe:
print divMain ('span'). closest ('div')
Il comando precedente restituirà il seguente risultato:
Ciao mondo
UN trova
è disponibile anche il metodo per trovare gli elementi. Ad esempio, per trovare una spanna all'interno del divMain
, devi chiamare il metodo come mostrato:
stampa divMain.find ('span')
Il comando precedente restituirebbe lo span.
Ciao mondo
Mentre aggiungere
fa il lavoro di aggiungere elementi agli elementi esistenti, a volte è necessario inserire elementi prima o dopo determinati elementi. PyQuery
fornisce un metodo per inserire elementi prima o dopo altri elementi.
Definiamo un nuovo elemento di paragrafo da inserire dopo lo span all'interno del divMain
div.
p = pq ('benvenuto
')
Chiama il InsertAfter
metodo sul paragrafo p
elemento per inserirlo dopo lo span.
p.insertAfter (divMain ('span')) stampa divMain
Salvare le modifiche precedenti ed eseguire il programma Python. Dovresti avere il seguente output:
- Giada
- Jim
Ciao mondobenvenuto
Allo stesso modo, hai il insertBefore
metodo, che inserisce prima dell'elemento. Modificare il codice come mostrato di seguito per utilizzare il insertBefore
metodo:
p.insertBefore (divMain ('span')) stampa divMain
Salva le modifiche ed esegui il programma. Dovresti essere in grado di vedere il seguente output sul terminale:
- Giada
- Jim
benvenuto
Ciao mondo
In questo tutorial hai visto come iniziare PyQuery
, una libreria Python che ti permette di creare query jQuery su documenti XML. Hai visto come manipolare gli attributi e gli stili CSS degli elementi HTML.
Hai imparato come creare e aggiungere elementi a elementi esistenti e inserire nuovi elementi prima e dopo gli elementi. Quello che hai visto in questo tutorial è solo la punta dell'iceberg, e c'è molto di più che questa libreria ha da offrire.
Per informazioni più dettagliate sull'utilizzo di questa libreria, ti consiglio di leggere la documentazione ufficiale. Fateci sapere i vostri suggerimenti nei commenti qui sotto.