Python

Hvordan analysere og skrape HTML ved hjelp av Pyquery

Hvordan analysere og skrape HTML ved hjelp av Pyquery
“Pyquery” er en tredjeparts Python-modul som lar deg analysere og trekke ut data fra “xml” og “html” dokumenter. Den er inspirert av jQuery JavaScript-biblioteket og har en nesten identisk syntaks, slik at du kan bruke mange hjelperfunksjoner og stenografisk kode for å analysere og manipulere dokumenttreet. Denne artikkelen vil dekke en enkel guide om Pyquery som vil hjelpe deg i gang med modulen.

Pyquery-installasjon

For å installere Pyquery i Ubuntu, bruk kommandoen spesifisert nedenfor:

$ sudo apt installere python3-pyquery

Du kan også installere den nyeste versjonen av Pyquery fra "pip" pakkebehandling ved å kjøre følgende to kommandoer etter hverandre:

$ sudo apt installere python3-pip
$ pip3 installer pyquery

For å installere Pyquery i andre Linux-distribusjoner, installer “pip3” fra pakkebehandleren og kjør den andre kommandoen nevnt ovenfor.

Opprette et analyserbart dokumenttre

Før du kan analysere og trekke ut data fra et HTML-dokument, må du opprette et dokumenttre. Du kan opprette et dokumenttre fra en enkel HTML-markering ved hjelp av kodeeksemplet nedenfor:

fra pyquery importer PyQuery som pq
document = pq ("Hello World !!")
skriv ut (dokument)
skriv ut (type (dokument))

Den første uttalelsen importerer "PyQuery" -klassen fra "pyquery" -modulen. Deretter opprettes en ny forekomst av PyQuery-klassen. Etter å ha kjørt kodeeksemplet ovenfor, bør du få følgende utdata:

Hei Verden !!

Legg merke til den andre linjen i utgangen. Her returnerer ikke "dokument", som er en forekomst av "PyQuery" -klassen, et strengtypeobjekt. Du kan raskt spørre om alle metodene som er tilgjengelige for "dokument" -forekomst ved å legge til følgende ekstra linje i kodeeksemplet ovenfor:

fra pyquery importer PyQuery som pq
dokument = pq ("Hei Verden !!")
skriv ut (hjelp (dokument))

Du kan også bla gjennom API for PyQuery-klassen online.

For å lage dokumenttreet fra en URL, bruk i stedet følgende kode (erstatt “url” med din egen ønskede adresse):

fra pyquery importer PyQuery som pq
dokument = pq (url = 'https: // eksempel.com ')
skriv ut (dokument)

For å opprette et dokumenttre fra lokal HTML-fil, bruk koden nedenfor (erstatt verdien av "filnavn" i henhold til dine behov):

fra pyquery importer PyQuery som pq
dokument = pq (filnavn = 'indeks.html ')
skriv ut (dokument)

Nå som du har et dokumenttre, kan du begynne å analysere det.

Manipulere dokumenttreet

Du kan trekke ut data og manipulere dokumenttrær ved hjelp av en rekke metoder. Noen av de vanligste metodene er oppført nedenfor med prøver. For alle brukbare metoder, se API tilgjengelig her.

Du kan bruke "tekst" -metoden for å få tekstinnhold i et element:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
skriv ut (s.tekst())

Du kan velge en bestemt tag / element ved å oppgi navnet som argument til "dokument" -forekomsten. Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Hei Verden !!

Du kan få attributter til en tag ved å bruke “attr” -metoden. For å gjøre det, velg en kode du vil analysere ('p' i dette tilfellet) og oppgi attributtnavnet som et argument ('id' i dette tilfellet) eller bruk punktnotasjon.

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
skriv ut (dokument)
skriv ut (s.attr ("id"), s.attr.id)

Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Hei Verden !!

Du kan manipulere CSS ved å bruke "css" -metoden. For å legge til CSS-stiler i

eller en hvilken som helst annen tagg, kan du bruke følgende kode:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
s.css ("color": "red")
skriv ut (dokument)
skriv ut (s.attr ("stil"))

Erstatt "" farge ":" rød "" del med dine egne tilpassede stiler. Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata og kontrollere at CSS er riktig brukt:

Hei Verden !!


fargen rød

Hvis du har en forhåndsstilt klasse, kan du bare bruke "addClass" -metoden for å bruke eksisterende stiler.

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
s.addClass ("mystyle")

Du kan legge til og forhåndsstille din egen tilpassede markering ved hjelp av kodeeksemplet nedenfor:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
s.prepend ("

Hei

")
s.legge til ("

Ha det

")
skriv ut (dokument)

Erstatt argumenter i “prepend” og “append” metoden med dine egne verdier. Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Hei

Hei Verden !!

Ha det

For å fjerne innholdet i et element, bruk "tom" -metoden.

fra pyquery importer PyQuery som pq
dokument = pq ("

Hei Verden !!

")
p = dokument ('p')
s.tømme()
skriv ut (dokument)

Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Du kan bruke "filter" -metoden til å velge bestemte elementer når det er flere koder av samme type. For eksempel henter koden nedenfor en “

”Tag som har en“ id ”som“ hei ”:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hallo

Verden !!

")
p = dokument ('p')
skriv ut (s.filter ("# hallo"))

Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Hallo

Du kan finne flere koder / elementer samtidig ved å bruke "finn" -metoden:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hallo

Verden !!

")
skriv ut (dokument.finn ('p'))

Gi taggen / elementnavnet som argument for "finn" -metoden. Etter å ha kjørt ovennevnte kodeeksempel, bør du få følgende utdata:

Hallo

Verden !!

Du kan bytte mellom "xml" og "html" parsers ved å bruke et ekstra "parser" argument:

fra pyquery importer PyQuery som pq
dokument = pq ("

Hallo

Verden !!

", parser =" html ")
skriv ut (dokument)

Hvis du trenger ytterligere hjelp med Pyquery, kan du se den offisielle dokumentasjonen og eksemplene som er tilgjengelige her.

Konklusjon

PyQuery lar deg raskt analysere html-dokumenter ved å skrive minimumskode, da den inneholder mange hjelperfunksjoner som fullstendig utelater behovet for å skrive tilpasset kode. Dens "jQuery" som syntaks og struktur hjelper også med å velge elementer og noder uten å gå dypere inn i dokumenttreet, spesielt når det er mye nestet markering.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...