Hvordan du kan analysere og skrape html ved hjelp av pyquery

Hvordan du kan 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. Det er inspirert av JQuery JavaScript -biblioteket og har en nesten identisk syntaks, slik at du kan bruke mange hjelperfunksjoner og Shorthand -kode for å analysere og manipulere dokumenttreet. Denne artikkelen vil dekke en enkel guide om pyquery som hjelper deg å komme i gang med modulen.

Pyquery -installasjon

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

$ sudo apt install python3-pyquery

Du kan også installere den siste versjonen av Pyquery fra “Pip” Package Manager ved å kjøre følgende to kommandoer etter hverandre:

$ sudo apt install python3-pip
$ pip3 installer pyquery

For å installere Pyquery i andre Linux -distribusjoner, installer “PIP3” fra Package Manager og kjør den andre kommandoen som er nevnt ovenfor.

Opprette et parsabelt 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 å bruke kodeprøven nedenfor:

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("Hello World !!")
trykk (dokument)
Print (Type (dokument))

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

Hei Verden !!

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

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("Hello World !!")
Print (Help (Document))

Du kan også bla gjennom API for Pyquery Class Online.

For å opprette dokumenttre fra en URL, bruk følgende kode i stedet (erstatt “URL” med din egen ønsket adresse):

Fra Pyquery Import Pyquery som PQ
Dokument = PQ (url = 'https: // Eksempel.com ')
trykk (dokument)

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

Fra Pyquery Import Pyquery som PQ
dokument = pq (filnavn = 'indeks.html ')
trykk (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 listet opp nedenfor med prøver. For alle brukbare metoder, se API som er tilgjengelig her.

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

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

")
P = dokument ('P')
trykk (s.tekst())

Du kan velge en spesifikk tag / element ved å gi navnet sitt som argument til "dokument" -forekomsten. Etter å ha kjørt ovennevnte kodeprøve, 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 tag du vil analysere ('P' i dette tilfellet) og oppgi attributtnavnet som et argument ('id' i dette tilfellet) eller bruk prikknotasjon.

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

")
P = dokument ('P')
trykk (dokument)
trykk (s.attr ("id"), s.attr.id)

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

Hei Verden !!

Du kan manipulere CSS ved hjelp av “CSS” -metoden. Å legge CSS -stiler til

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

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

")
P = dokument ('P')
p.CSS ("Color": "Red")
trykk (dokument)
trykk (s.attr ("stil"))

Erstatt ““ Color ”:“ Red ”” -del med dine egne tilpassede stiler. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata og kan bekrefte at CSS har blitt brukt riktig:

Hei Verden !!


fargen rød

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

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

")
P = dokument ('P')
p.addclass ("mystyle")

Du kan legge til og forberede din egen tilpassede markering ved å bruke kodeprøven nedenfor:

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

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

Hei

")
p.vedlegg ("

Ha det

")
trykk (dokument)

Erstatte argumenter i metoden "prepend" og "legge til" med dine egne verdier. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Hei

Hei Verden !!

Ha det

For å fjerne innholdet i et element, bruk den "tomme" metoden.

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hei Verden !!

")
P = dokument ('P')
p.tømme()
trykk (dokument)

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

Du kan bruke "filter" -metoden for å velge spesifikke elementer når det er flere tagger av samme type. For eksempel henter koden nedenfor en "

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

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hallo

Verden !!

")
P = dokument ('P')
trykk (s.filter ("#hei"))

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

Hallo

Du kan finne flere tagger / elementer samtidig ved å bruke "Finn" -metode:

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hallo

Verden !!

")
trykk (dokument.finn ('P'))

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

Hallo

Verden !!

Du kan veksle mellom “XML” og “HTML” -parsere ved å bruke et ekstra “Parser” -argument:

Fra Pyquery Import Pyquery som PQ
Dokument = PQ ("

Hallo

Verden !!

", parser =" html ")
trykk (dokument)

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

Konklusjon

Pyquery lar deg raskt analysere HTML -dokumenter ved å skrive minimumskode, da det inkluderer 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.