Pytonorm

Hur man analyserar och skrapar HTML med Pyquery

Hur man analyserar och skrapar HTML med Pyquery
"Pyquery" är en Python-modul från tredje part som låter dig analysera och extrahera data från "xml" och "html" -dokument. Det är inspirerat av jQuery JavaScript-biblioteket och har en nästan identisk syntax, så att du kan använda många hjälpfunktioner och stenografisk kod för att analysera och manipulera dokumentträdet. Den här artikeln kommer att täcka en enkel guide om Pyquery som hjälper dig att komma igång med modulen.

Installation av Pyquery

För att installera Pyquery i Ubuntu, använd kommandot som anges nedan:

$ sudo apt installera python3-pyquery

Du kan också installera senaste versionen av Pyquery från "pip" -pakethanteraren genom att köra följande två kommandon i följd:

$ sudo apt installera python3-pip
$ pip3 installera pyquery

För att installera Pyquery i andra Linux-distributioner installerar du “pip3” från pakethanteraren och kör det andra kommandot som nämns ovan.

Skapa ett analyserbart dokumentträd

Innan du kan analysera och extrahera data från ett HTML-dokument måste du skapa ett dokumentträd. Du kan skapa ett dokumentträd från en enkel HTML-markering med hjälp av kodexemplet nedan:

från pyquery importerar PyQuery som pq
document = pq ("Hello World !!")
skriva ut (dokument)
skriva ut (typ (dokument))

Det första uttalandet importerar klassen “PyQuery” från modulen “pyquery”. Därefter skapas en ny instans av PyQuery-klassen. Efter att ha kört kodprovet ovan bör du få följande utdata:

Hej världen !!

Lägg märke till den andra raden i utdata. Här returnerar inte "dokument", som är en förekomst av "PyQuery" -klassen, ett strängtypobjekt. Du kan snabbt fråga alla tillgängliga metoder för "dokument" -instans genom att lägga till följande extra rad i kodprovet ovan:

från pyquery importerar PyQuery som pq
dokument = pq ("Hej världen !!")
skriva ut (hjälp (dokument))

Du kan också bläddra i API för PyQuery-klassen online.

För att skapa dokumentträd från en URL, använd följande kod istället (ersätt "url" med din egen önskade adress):

från pyquery importerar PyQuery som pq
dokument = pq (url = 'https: // exempel.com ')
skriva ut (dokument)

För att skapa ett dokumentträd från lokal HTML-fil, använd nedanstående kod (ersätt värdet på "filnamn" enligt dina behov):

från pyquery importerar PyQuery som pq
dokument = pq (filnamn = 'index.html ')
skriva ut (dokument)

Nu när du har ett dokumentträd kan du börja analysera det.

Manipulera dokumentträdet

Du kan extrahera data och manipulera dokumentträd med olika metoder. Några av de vanligaste metoderna listas nedan med prover. För alla användbara metoder, se API tillgängligt här.

Du kan använda "text" -metoden för att få textinnehåll i ett element:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

")
p = dokument ('p')
skriva ut (s.text())

Du kan välja en specifik tagg / element genom att ange dess namn som argument till "dokument" -instansen. Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Hej världen !!

Du kan få attribut för en tagg med "attr" -metoden. Välj en tagg som du vill analysera ('p' i det här fallet) och ange attributnamnet som ett argument ('id' i det här fallet) eller använd punktnotation.

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

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

Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Hej världen !!

Du kan manipulera CSS med "css" -metoden. För att lägga till CSS-stilar till

eller någon annan tagg kan du använda följande kod:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

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

Ersätt "" färg ":" röd "" del med dina egna anpassade stilar. Efter att ha kört ovanstående kodexempel bör du få följande utdata och kan verifiera att CSS har tillämpats korrekt:

Hej världen !!


färgen röd

Om du har en förutbestämd klass kan du bara använda metoden “addClass” för att tillämpa befintliga stilar.

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

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

Du kan lägga till och förbereda din egen anpassade markering med hjälp av kodexemplet nedan:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

")
p = dokument ('p')
sid.addera till början("

Hej

")
sid.bifoga("

Hejdå

")
skriva ut (dokument)

Ersätt argumenten i "prepend" och "append" metoden med dina egna värden. Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Hej

Hej världen !!

Hejdå

För att ta bort innehållet i ett element, använd metoden "tom".

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej världen !!

")
p = dokument ('p')
sid.tömma()
skriva ut (dokument)

Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Du kan använda "filter" -metoden för att välja specifika element när det finns flera taggar av samma typ. Till exempel tar koden nedan en “

”Tagg med ett” id ”som“ hej ”:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej

Värld !!

")
p = dokument ('p')
skriva ut (s.filter ("# hej"))

Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Hej

Du kan hitta flera taggar / element samtidigt med "hitta" -metoden:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej

Värld !!

")
skriva ut (dokument.hitta ('p'))

Ange taggen / elementnamnet som argument för "hitta" -metoden. Efter att ha kört ovanstående kodexempel ska du få följande utdata:

Hej

Värld !!

Du kan växla mellan "xml" och "html" -parsers med ett ytterligare "parser" -argument:

från pyquery importerar PyQuery som pq
dokument = pq ("

Hej

Värld !!

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

Om du behöver ytterligare hjälp med Pyquery, se dess officiella dokumentation och exempel som finns här.

Slutsats

PyQuery låter dig snabbt analysera html-dokument genom att skriva minimikod, eftersom den innehåller många hjälpfunktioner som helt utelämnar behovet av att skriva anpassad kod. Dess "jQuery" som syntax och struktur hjälper också till att välja element och noder utan att gå djupare in i dokumentträdet, speciellt när det finns mycket kapslad markering.

Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...
Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...