PyQuery jQuery di Python

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.

Introduzione a PyQuery

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

Manipolazione degli attributi usando PyQuery

Ora diamo un'occhiata a come leggere gli attributi usando il PyQuery biblioteca. Supponiamo di avere un elemento HTML come mostrato:

  • Roy
  • Hari

Utilizzare il PyQuery libreria per leggere il contenuto HTML di cui sopra.

ulMain = pq ("
  • Roy
  • Hari
")

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.

  • Roy
  • Hari

È 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')

Gestione dei CSS con PyQuery

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.

  • Roy
  • Hari

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.

  • Roy
  • Hari

Creazione e aggiunta di elementi

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)

Trovare elementi usando PyQuery

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

Inserisci un elemento all'interno di HTML

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 mondo

benvenuto

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

Avvolgendolo

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.