Samouczek Python Beautifulsoup dla początkujących

Samouczek Python Beautifulsoup dla początkujących
Scrapowanie internetowe ma ogromne znaczenie w dzisiejszym świecie. Każdy potrzebuje danych z różnych źródeł, w tym stron internetowych. W tym artykule przyjrzymy się, jak przeanalizować HTML z biblioteką Piękną. Wyodrębnienie potrzebnych danych z wielu alfabetów i symboli, dzięki tej wspaniałej bibliotece, stało się o wiele łatwiejsze. Beautifulsoup napisane w Pythonie można łatwo zainstalować na twoim komputerze za pomocą narzędzia instalacyjnego Pythona PIP. Następujące polecenie pomogłoby zainstalować bibliotekę:
PIP Zainstaluj BeautifulSoup4

Aby sprawdzić, czy instalacja zakończyła się powodzeniem, aktywuj interaktywną skorupę Python i importuj BeautifulSoup. Jeśli nie pojawi się błąd, oznacza to, że wszystko poszło dobrze. Jeśli nie wiesz, jak to zrobić, wpisz następujące polecenia w swoim terminalu.

$ Python
Python 3.5.2 (domyślnie, 14 września 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linux
Wpisz „Pomoc”, „Copyright”, „Kredyty” lub „Licencja”, aby uzyskać więcej informacji.
>>> Importuj BS4

Aby pracować z biblioteką pięknych, musisz przejść w HTML. Podczas pracy z prawdziwymi stronami internetowymi możesz uzyskać HTML strony internetowej za pomocą biblioteki żądań. Instalacja i korzystanie z biblioteki żądań wykracza poza zakres tego artykułu, jednak możesz znaleźć drogę dookoła dokumentacji, że jest dość łatwa w użyciu. W tym artykule będziemy po prostu używać HTML w ciągu Pythona, który dzwoniłbyśmy html.

html = "" "

Profil pracownika



Nazwa:Dr Peter Parker
Stanowisko:Inżynier uczenia maszynowego
Telefon:+12345678910
E-mail:
[email protected]

Strona internetowa:
PparkerWorks.com



„” ”

Aby korzystać z BeautifulSoup, importujemy go do kodu za pomocą poniższego kodu:

z BS4 Import Beautifulsoup

To wprowadziłoby piękną grupę do naszej przestrzeni nazw i możemy użyć jej w analizowaniu naszego ciągu.

Zupa = BeautifulSoup (html, „lxml”)

Teraz, zupa jest pięknym obiektem typu BS4.Beautifulsoup i możemy wykonywać wszystkie operacje w Pięknej grupie zupazmienny.

Rzućmy okiem na niektóre rzeczy, które możemy teraz zrobić z piękną grupą.

Czyniąc brzydkie, piękne

Kiedy Piękna Parsuje HTML, zwykle nie jest to w najlepszych formatach. Odstępy są dość okropne. Tagi są trudne do znalezienia. Oto obraz pokazujący, jak wyglądaliby, gdy możesz wydrukować zupa:

Istnieje jednak rozwiązanie tego. Rozwiązanie daje HTML idealne odstępy, dzięki czemu wszystko wygląda dobrze. To rozwiązanie jest zasłużone „nazywane”upiększać".

Trzeba przyznać, że możesz nie korzystać z tej funkcji przez większość czasu; Są jednak chwile, kiedy możesz nie mieć dostępu do narzędzia Inspekt Element w przeglądarce internetowej. W czasach ograniczonych zasobów uważasz, że metoda wstępna jest bardzo przydatna.

Oto jak go używasz:

zupa.upiększać()

Znacznik wyglądałby odpowiednio rozmieszczony, jak na zdjęciu poniżej:

Po zastosowaniu metody wstępnej na zupę wynik nie jest już typ BS4.Piękna grupa. Rezultatem jest teraz typ „Unicode”. Oznacza to, że nie możesz zastosować na nim innych metod pięknej grupy, jednak sama zupa nie ma to wpływu, więc jesteśmy bezpieczni.

Znalezienie naszych ulubionych tagów

HTML składa się z tagów. Przechowuje w nich wszystkie dane, a pośród wszystkich tych bałaganu leży potrzebne dane. Zasadniczo oznacza to, że kiedy znajdziemy odpowiednie tagi, możemy uzyskać to, czego potrzebujemy.

Jak więc znaleźć odpowiednie tagi? Korzystamy z metod Find i Find_All Metody.

Oto jak działają:

znajdować Metoda wyszukuje pierwszy znacznik z potrzebną nazwą i zwraca obiekt typu BS4.element.Etykietka.

Znajdź wszystko Metoda Z drugiej strony, wyszukuje wszystkie tagi z potrzebną nazwą znacznika i zwraca je jako listę typu BS4.element.Wynik wyników. Wszystkie elementy na liście są typu BS4.element.Tag, abyśmy mogli przeprowadzić indeksowanie na liście i kontynuować naszą eksplorację Pięknych.

Zobaczmy jakiś kod. Znajdźmy wszystkie tagi Div:

zupa.Znajdź („div”)

Otrzymalibyśmy następujący wynik:

Nazwa:Dr Peter Parker

Sprawdzając zmienną HTML, zauważysz, że jest to pierwszy znacznik DIV.

zupa.Find_All („div”)

Otrzymalibyśmy następujący wynik:

[[[
Nazwa:Dr Peter Parker,
Stanowisko:Inżynier uczenia maszynowego,
Telefon:+12345678910,
E-mail:
[email protected]
,
Strona internetowa:
PparkerWorks.com
]

Zwraca listę. Jeśli na przykład chcesz trzeci znacznik DIV, uruchom następujący kod:

zupa.Find_All („div”) [2]

Zwróciłoby to:

Telefon:+12345678910

Znalezienie atrybutów naszych ulubionych tagów

Teraz, gdy widzieliśmy, jak zdobyć nasze ulubione tagi, co powiesz na ich atrybuty?

Być może w tym momencie zastanawiasz się: „Do czego potrzebujemy atrybutów?". Cóż, wiele razy większość potrzebnych danych będzie adresami e -mail i stron internetowych. Tego rodzaju dane są zwykle hiperłączowe na stronach internetowych, z linkami w atrybucie „HREF”.

Po wyodrębnianiu potrzebnego znacznika za pomocą metod Find lub Find_All możemy uzyskać atrybuty, stosując attrs. Zwróciłoby to słownik atrybutu i jego wartość.

Aby uzyskać na przykład atrybut e -mail, otrzymujemy tagi, które otaczają potrzebne informacje i wykonujemy następujące informacje.

zupa.Find_All („A”) [0].attrs

Który zwróciłby następujący wynik:

„href”: „Mailto: [email protected] '

To samo dla atrybutu witryny.

zupa.Find_All („A”) [1].attrs

Który zwróciłby następujący wynik:

'href': 'http: // pparkerWorks.com '

Zwracane wartości to słowniki i można zastosować normalną składnię słownika, aby uzyskać klucze i wartości.

Zobaczmy rodzica i dzieci

Wszędzie są tagi. Czasami chcemy wiedzieć, jakie są tagi dzieci i jaki jest znacznik nadrzędny.

Jeśli jeszcze nie wiesz, co to znacznik dla rodziców i dziecięcy, to krótkie wyjaśnienie powinno wystarczyć: znacznik nadrzędny jest bezpośrednią tag.

Patrząc na nasz HTML, znacznik ciała jest nadrzędnym znacznikiem wszystkich tagów Div. Ponadto odważny znacznik i znacznik kotwicy są dziećmi tagów div, w stosownych przypadkach, ponieważ nie wszystkie znaczniki Div mają znaczniki kotwiczne.

Więc możemy uzyskać dostęp do znacznika nadrzędnego, dzwoniąc Znalezienie metoda.

zupa.Znajdź („div”).Findwarent ()

Zwróci to cały znacznik ciała:


Nazwa:Dr Peter Parker
Stanowisko:Inżynier uczenia maszynowego
Telefon:+12345678910
E-mail:
[email protected]

Strona internetowa:
PparkerWorks.com

Aby uzyskać znacznik dzieci czwartego tagu div, nazywamy FindHildrens metoda:

zupa.Find_All („div”) [4].FindChildren ()

Zwraca następujące czynności:

[[[Strona internetowa:, PparkerWorks.com]

Co w tym jest dla nas?

Podczas przeglądania stron internetowych nie widzimy tagów wszędzie na ekranie. Widzimy tylko zawartość różnych tagów. Co jeśli chcemy zawartości tagu, bez wszystkich kątowych nawiasów sprawiają, że życie jest niewygodne? To nie jest trudne, tylko to zadzwonić get_text Metoda na wybranym znaczniku i otrzymujemy tekst w znaczniku, a jeśli znacznik ma inne znaczniki, otrzymuje również ich wartości tekstowe.

Oto przykład:

zupa.Znajdź („ciało”).get_text ()

Zwraca to wszystkie wartości tekstowe w znaczniku ciała:

Nazwa: Dr Peter Parker
Zadanie: Inżynier uczenia maszynowego
Telefon: +12345678910
E -mail: [email protected]
Strona internetowa: PparkerWorks.com

WNIOSEK

To właśnie mamy do tego artykułu. Są jednak inne interesujące rzeczy, które można zrobić za pomocą Beautifulsoup. Możesz sprawdzić dokumentację lub użyć Dir (BeautfulSoup) na interaktywnej powłoce, aby zobaczyć listę operacji, które można przeprowadzić na obiekcie pięknej. To wszystko ode mnie dzisiaj, dopóki nie piszę ponownie.