Jak analizować i zeskrobać HTML za pomocą PyQuery

Jak analizować i zeskrobać HTML za pomocą PyQuery
„PyQuery” to moduł Python stron trzecich, który pozwala analizować i wyodrębniać dane z dokumentów „XML” i „HTML”. Jest inspirowany biblioteką JQuery JavaScript i ma prawie identyczną składnię, umożliwiając użycie wielu funkcji pomocniczych i kodu skrótem do analizowania i manipulowania drzewem dokumentów. W tym artykule obejmie prosty przewodnik na temat PyQuery, który pomoże Ci zacząć z modułem.

Instalacja Pyquery

Aby zainstalować PyQuery w Ubuntu, użyj polecenia określonego poniżej:

$ sudo apt instal Python3-pyquery

Możesz także zainstalować najnowszą wersję PyQuery z Menedżera pakietów „PIP”, uruchamiając następujące dwa polecenia z rzędu:

$ sudo apt instal Python3-Pip
$ pip3 instaluj pyquery

Aby zainstalować PyQuery w innych dystrybucjach Linux, zainstaluj „PIP3” z menedżera pakietów i uruchom drugie wspomniane polecenie.

Tworzenie parsowalnego drzewa dokumentów

Zanim będziesz mógł przeanalizować i wyodrębnić dane z dokumentu HTML, musisz utworzyć drzewo dokumentów. Możesz utworzyć drzewo dokumentów z prostego znacznika HTML za pomocą poniższej próbki kodu:

Od Pyquery Import Pyquery jako PQ
Document = PQ ("Hello World !!")
Wydrukuj dokument)
print (typ (dokument))

Pierwsze oświadczenie importuje klasę „PyQuery” z modułu „PyQuery”. Następnie powstaje nowa instancja klasy Pyquery. Po uruchomieniu próbki kodu powyżej należy uzyskać następujące dane wyjściowe:

Witaj świecie !!

Zwróć uwagę na drugą linię w wyjściu. Tutaj „Dokument”, który jest instancją klasy „Pyquery”, nie zwraca obiektu typu ciągów. Możesz szybko zapytać o wszystkie metody dostępne do instancji „Dokument”, dodając następującą dodatkową linię do powyższego przykładu kodu:

Od Pyquery Import Pyquery jako PQ
Document = PQ ("Hello World !!")
print (pomoc (dokument))

Możesz także przeglądać interfejs API na klasę Pyquery Online.

Aby utworzyć drzewo dokumentu z adresu URL, użyj zamiast tego następującego kodu (zastąp „URL” własnym pożądanym adresem):

Od Pyquery Import Pyquery jako PQ
dokument = pq (url = 'https: // przykład.com ')
Wydrukuj dokument)

Aby utworzyć lokalny plik HTML z formularza dokumentu, użyj poniższego kodu (zastąp wartość „nazwy pliku” zgodnie z potrzebami):

Od Pyquery Import Pyquery jako PQ
Document = pq (indeks fileName = '.html ')
Wydrukuj dokument)

Teraz, gdy masz drzewo dokumentów, możesz zacząć je analizować.

Manipulowanie drzewem dokumentów

Możesz wyodrębnić dane i manipulować drzewami dokumentów za pomocą różnych metod. Niektóre z najczęstszych metod wymieniono poniżej z próbkami. Wszystkie metody użyteczne można znaleźć w interfejsie API dostępnym tutaj.

Możesz użyć metody „tekstowej”, aby uzyskać treść tekstu elementu:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
Drukuj (str.tekst())

Możesz wybrać określony znacznik / element, dostarczając jego nazwę jako argument do instancji „Dokument”. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Witaj świecie !!

Możesz uzyskać atrybuty znacznika za pomocą metody „ATT”. Aby to zrobić, wybierz tag, który chcesz przeanalizować („P” w tym przypadku) i podać nazwę atrybutu jako argument („id” w tym przypadku) lub użyj notacji kropkowej.

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
Wydrukuj dokument)
Drukuj (str.attr („id”), str.attr.ID)

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Witaj świecie !!

Możesz manipulować CSS za pomocą metody „CSS”. Aby dodać style CSS do

Lub dowolny inny tag, możesz użyć następującego kodu:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
P.CSS („Color”: „czerwony”)
Wydrukuj dokument)
Drukuj (str.attr („styl”))

Wymień część „„ kolor ”:„ czerwony ”” na własne niestandardowe style. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe i możesz sprawdzić, czy CSS został poprawnie zastosowany:

Witaj świecie !!


kolor czerwony

Jeśli masz klasę w stylu, możesz po prostu użyć metody „AddClass” do zastosowania istniejących stylów.

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
P.AddClass („Mystyle”)

Możesz dołączyć i przygotować własny niestandardowy znaczniki za pomocą poniższej próbki kodu:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
P.Przygotuj (”

Cześć

")
P.dodać("

Do widzenia

")
Wydrukuj dokument)

Zastąp argumenty w metodzie „Przygotuj” i „dołącz” własnymi wartościami. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Cześć

Witaj świecie !!

Do widzenia

Aby usunąć zawartość elementu, użyj metody „pustej”.

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Witaj świecie !!

")
p = dokument („p”)
P.pusty()
Wydrukuj dokument)

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Możesz użyć metody „Filtr”, aby wybrać określone elementy, gdy istnieje wiele znaczników tego samego typu. Na przykład poniższy kod odbiera „

„Tag ma„ id ”jako„ Hello ”:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Cześć

Świat !!

")
p = dokument („p”)
Drukuj (str.filtr („#hello”))

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Cześć

Można znaleźć wiele tagów / elementów jednocześnie za pomocą metody „Znajdź”:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Cześć

Świat !!

")
Wydrukuj dokument.Znajdź („p”))

Podaj nazwę znacznika / elementu jako argument do metody „Znajdź”. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Cześć

Świat !!

Możesz przełączać się między parserami między „XML” i „HTML” za pomocą dodatkowego argumentu „Parser”:

Od Pyquery Import Pyquery jako PQ
dokument = PQ ("

Cześć

Świat !!

", parser =" html ")
Wydrukuj dokument)

Jeśli potrzebujesz dalszej pomocy w PyQuery, zapoznaj się z jej oficjalną dokumentacją i przykładami dostępnymi tutaj.

Wniosek

PyQuery pozwala szybko przeanalizować dokumenty HTML, pisząc minimalny kod, ponieważ zawiera wiele funkcji pomocniczych, które całkowicie pomijają potrzebę pisania niestandardowego kodu. Jego „jQuery”, takie jak składnia i struktura, pomagają również w wyborze elementów i węzłów bez głębiej wchodzenia w drzewo dokumentów, szczególnie gdy istnieje wiele zagnieżdżonych znaczników.