World Wide Web jest wszechstronnym i ostatecznym źródłem wszystkich istniejących danych. Szybki rozwój, jaki Internet widział w ciągu ostatnich trzech dekad, był bezprecedensowy. W rezultacie sieć jest montowana z setkami terabajtów danych każdego dnia.
Wszystkie te dane mają pewną wartość dla pewnej osoby. Na przykład Twoja historia przeglądania ma znaczenie dla aplikacji w mediach społecznościowych, ponieważ wykorzystują ją do personalizacji reklam, które Ci pokazują. I istnieje również duża konkurencja o te dane; Kilka MB więcej danych może zapewnić firmom znaczną przewagę nad konkurencją.
Wydobycie danych za pomocą Pythona
Aby pomóc tym z was, którzy są nowością w skrobaniu danych, przygotowaliśmy ten przewodnik, w którym pokażemy, jak zeskrobać dane z sieci za pomocą Python i pięknej biblioteki zup.
Zakładamy, że masz już pośrednią znajomość Pythona i HTML, ponieważ będziesz pracować z tymi obiema przestrzennymi instrukcjami w tym przewodniku.
Zachowaj ostrożność, na których witrynach próbujesz nowych umiejętności wydobywania danych, ponieważ wiele witryn uważa to z tego natrętne i wie, że mogą istnieć reperkusje.
Instalowanie i przygotowanie bibliotek
Teraz użyjemy dwóch bibliotek, których zamierzamy użyć: Biblioteka żądań Pythona do ładowania zawartości ze stron internetowych i pięknej biblioteki zupy do faktycznego skrobania tego procesu. Istnieją alternatywy dla Beautifulsoup, pamiętajcie.
Bibliotekę żądań można pobrać i zainstalować za pomocą polecenia PIP jako pod:
# PIP3 instaluj żądaniaBiblioteka żądań powinna być zainstalowana na twoim urządzeniu. Podobnie pobierz również BeautifulSoup:
# PIP3 Zainstaluj BeautifulSoup4Dzięki temu nasze biblioteki są gotowe na jakąś akcję.
Jak wspomniano powyżej, biblioteka żądań nie ma zbytniego zastosowania niż pobieranie zawartości ze stron internetowych. Biblioteka Pięknych Biltrów i prośby biblioteki mają miejsce w każdym skrypcie, który zamierzasz napisać, i muszą być importowane przed każdym następująco:
$ żądania importuTo dodaje żądane słowo kluczowe do przestrzeni nazw, sygnalizując Pythonowi znaczenie słowa kluczowego za każdym razem, gdy jego użycie jest monitowane. To samo dzieje się z słowem kluczowym BS, choć tutaj mamy korzyść z przypisania prostszego słowa kluczowego dla Beautifulsoup.
strona internetowa = żądania.Get (URL)Kod powyżej pobiera adres URL strony internetowej i tworzy z niego bezpośredni ciąg, przechowując go w zmiennej.
$ webcontent = strona internetowa.treśćPowyższe polecenie kopiuje zawartość strony internetowej i przypisuje je do zmiennej zawartości internetowej.
Dzięki temu skończyliśmy bibliotekę żądań. Wszystko pozostało do zmiany opcji biblioteki żądań na opcje pięknej grupy.
$ htmlcontent = bs (WebContent, „html.Parser ”)To analizuje obiekt żądania i zamienia go w czytelne obiekty HTML.
Po tym wszystkim możemy przejść do faktycznego kawałka skrobania.
Skrobanie internetowe z Pythonem i Beautifulsoup
Przejdźmy dalej i zobaczmy, w jaki sposób możemy zeskrobać obiekty HTML z piękną grupą.
Aby zilustrować przykład, podczas gdy my wyjaśnimy rzeczy, będziemy pracować z tym fragmentem HTML:
Możemy uzyskać dostęp do zawartości tego fragmentu z piękną grupą i użyć go na zmiennej zawartości HTML jako pod:
Powyższy kod wyszukuje wszelkie wymienione tagi i pokazuje go użytkownikowi. Jeśli znajdzie więcej niż jeden tagi, pokazuje im jedno na raz:
Aby jednocześnie zapisać tagi wymienione na liście, wydalibyśmy końcowy kod jako pod:
Dane wyjściowe powinno powrócić w ten sposób:
Aby przywołać jeden z tagów, indeksuj listę i weź taki, którego chcesz.
Teraz zobaczmy, jak wybrać tagi, zachowując perspektywę ich cechy. Aby oddzielić A, potrzebujemy tagów z atrybutem „Tech_head”. Wprowadź następujący kod:
dla Div in zupa.Find_All („div”, attrs = 'class' = 'tech_head'):
To przynosi tag.
Dostaniesz:
Technologia
Wszystko bez tagów.
Na koniec omówimy, jak wybrać wartość atrybutu w znaczniku. Kod powinien mieć ten tag:
Aby operować wartość powiązaną z atrybutem SRC, użyłbyś następujących czynności:
htmlcontent.Znajdź („IMG”) [„SRC”]A wyjście okazałoby się jako:
„Xyzlady.jpg "Och, chłopcze, to z pewnością jest dużo pracy!
Jeśli czujesz, że znajomość Pythona lub HTML jest nieodpowiednia lub po prostu przytłoczasz się skrobaniem internetowym, nie martw się.
Jeśli jesteś firmą, która musi regularnie zdobywać określony rodzaj danych, ale nie możesz samodzielnie zrobić sieci, istnieją sposoby na ten problem. Ale wiedz, że będzie to kosztować trochę pieniędzy. Możesz znaleźć kogoś, kto zrobiłby dla siebie skrobanie, lub możesz uzyskać usługę danych premium ze stron takich jak Google i Twitter, aby udostępnić Ci dane. Te dzielą się częściami swoich danych poprzez zastosowanie interfejsów API, ale te wywołania API są ograniczone dziennie. Poza tym takie strony internetowe mogą bardzo chronić ich dane. Zazwyczaj wiele takich witryn w ogóle nie udostępnia żadnych swoich danych.
Końcowe przemyślenia
Zanim się zakończymy, pozwól, że powiem ci na głos, jeśli nie było to już oczywiste; Polecenia Find (), Find_All () są Twoimi najlepszymi przyjaciółmi, gdy nie zgadzasz się z piękną grupą. Chociaż jest o wiele więcej do pokrycia, aby opanować skrobanie danych z Pythonem, ten przewodnik powinien wystarczyć dla tych z was.