Skrobanie stron internetowych za pomocą Pythona: przewodnik dla początkujących
Opublikowany: 2016-10-10W świecie Big Data usługi Web Scraping lub ekstrakcji danych są podstawowymi wymaganiami dla Big Data Analytics. Pobieranie danych z sieci stało się dla firm niemal nieuniknione, aby utrzymać się na rynku. Kolejne pytanie, które się pojawia, dotyczy tego, jak zacząć skrobać w sieci jako początkujący.

Dane można wyodrębnić lub zeskrobać ze źródła internetowego za pomocą wielu metod. Popularne witryny, takie jak Google, Facebook czy Twitter, oferują interfejsy API do przeglądania i wyodrębniania dostępnych danych w uporządkowany sposób. Zapobiega to używaniu innych metod, które mogą nie być preferowane przez dostawcę interfejsu API. Jednak zapotrzebowanie na indeksowanie witryny pojawia się, gdy informacje nie są łatwo oferowane przez witrynę. Python, język programowania o otwartym kodzie źródłowym, jest często używany do skrobania sieci ze względu na jego prosty i bogaty ekosystem. Zawiera bibliotekę o nazwie „BeautifulSoup”, która realizuje to zadanie. Przyjrzyjmy się bliżej web scrapingowi za pomocą Pythona.
Konfigurowanie środowiska Pythona:
Aby przeprowadzić web scraping za pomocą Pythona, musisz najpierw zainstalować środowisko Python, które umożliwia uruchamianie kodu napisanego w języku python. Biblioteki wykonują skrobanie danych;
Piękna zupa to wygodna w użyciu biblioteka Pythona. Jest to jedno z najlepszych narzędzi do wydobywania informacji ze strony internetowej. Profesjonaliści mogą indeksować informacje ze stron internetowych w formie tabel, list lub akapitów. Urllib2 to kolejna biblioteka, której można używać w połączeniu z biblioteką BeautifulSoup do pobierania stron internetowych. Można dodać filtry, aby wyodrębnić określone informacje ze stron internetowych. Urllib2 to moduł Pythona, który może pobierać adresy URL.
Dla MAC OSX:
Aby zainstalować biblioteki Pythona w systemie MAC OSX, użytkownicy muszą otworzyć terminal win i wpisać następujące polecenia, pojedynczo:
sudoeasy_install pip
pip zainstaluj BeautifulSoup4
pip zainstaluj lxml
Dla użytkowników Windows 7 i 8:
Użytkownicy Windows 7 i 8 muszą upewnić się, że środowisko Pythona zostanie najpierw zainstalowane. Po zainstalowaniu środowiska otwórz wiersz poleceń i znajdź drogę do katalogu głównego C:/ i wpisz następujące polecenia:
easy_install BeautifulSoup4
easy_installlxml
Po zainstalowaniu bibliotek nadszedł czas na napisanie kodu do scrapingu danych.
Uruchamianie Pythona:
Skrobanie danych musi być wykonane w określonym celu, takim jak przeszukanie bieżących zapasów sklepu detalicznego. Po pierwsze do poruszania się po stronie internetowej zawierającej te dane wymagana jest przeglądarka internetowa. Po zidentyfikowaniu tabeli kliknij prawym przyciskiem myszy w dowolnym miejscu, a następnie wybierz element inspekcji z listy rozwijanego menu. Spowoduje to, że na dole lub z boku ekranu pojawi się okno z kodem HTML witryny. Rankingi pojawiają się w tabeli. Może być konieczne przeskanowanie danych HTML, aż znajdziesz wiersz kodu, który wyróżnia tabelę na stronie internetowej.
Python oferuje inne alternatywy dla scrapingu HTML oprócz BeautifulSoup. Zawierają:
- Złośliwy
- Znak wydrapania
- Zmechanizować
Web scraping konwertuje nieustrukturyzowane dane z kodu HTML na ustrukturyzowaną formę danych, taką jak dane tabelaryczne w arkuszu programu Excel. Web scraping można wykonać na wiele sposobów, od korzystania z Dokumentów Google po języki programowania. Dla osób nie posiadających wiedzy programistycznej lub kompetencji technicznych istnieje możliwość pozyskania danych internetowych za pomocą usług web scrapingu, które dostarczają gotowe do użycia dane z wybranych przez Ciebie witryn.
Tagi HTML:
Aby wykonać web scraping, użytkownicy muszą posiadać solidną wiedzę na temat tagów HTML. Wiedza, że linki HTML są definiowane za pomocą znacznika kotwicy, tj. tagu <a>, „<a href=“https://…”>Link musi być tutaj </a> może być bardzo pomocna. Lista HTML zawiera listę <ul> (nieuporządkowaną) i <ol> (uporządkowaną). Pozycja listy zaczyna się od <li>.
Tabele HTML są zdefiniowane za pomocą <Table>, wiersz jako <tr>, a kolumny są podzielone na dane jako <td>;
- <!DOCTYPE html> : Dokument HTML zaczyna się od deklaracji typu dokumentu
- Główna część dokumentu HTML w niesformatowanym, zwykłym tekście jest zdefiniowana przez znaczniki <body> i </body>
- Nagłówki w HTML są definiowane za pomocą tagów nagłówków od <h1> do <h5>
- Akapity są definiowane za pomocą znacznika <p> w HTML
- Cały dokument HTML jest zawarty między <html> i </html>
Korzystanie z BeautifulSoup w skrobaniu:

Podczas scrapingu strony internetowej za pomocą BeautifulSoup głównym problemem jest zidentyfikowanie ostatecznego celu. Na przykład, jeśli chcesz wyodrębnić listę ze strony internetowej, wymagane jest podejście krokowe:
- Pierwszym i najważniejszym krokiem jest zaimportowanie wymaganych bibliotek:
#zaimportuj bibliotekę używaną do przeszukiwania witryny
importuj urllib2
#określ adres URL wiki = „https://”
#Zapytaj witrynę i zwróć kod html do zmiennej „page”
strona = urllib2.urlopen(wiki)
#zaimportuj funkcje Pięknej zupy, aby przeanalizować dane zwrócone ze strony
z bs4 importuj BeautifulSoup
#Przeanalizuj kod HTML w zmiennej 'page' i zapisz go w formacie Beautiful Soup
zupa = PięknaZupa(strona)
- Użyj funkcji „pretify”, aby zwizualizować zagnieżdżoną strukturę strony HTML
- Praca z tagami zupy:
Soup<tag> służy do zwracania treści między otwierającym a zamykającym tagiem zawierającym tag.
- W[30]:zupa.tytuł
Out[30]:<title>Lista prezydentów w Indiach do 2010 roku – Wikipedia, wolna encyklopedia</title>
- zupa.<tag>.string: Zwróć ciąg w obrębie podanego tagu
- W [38]:zupa.tytuł.ciąg
- Out[38]:u „Lista prezydentów w Indiach i Brazylii do 2010 roku w Indiach – Wikipedia, wolna encyklopedia”
- Znajdź wszystkie linki w tagach <a> strony: Oznacz link tagiem „<a>”. Wybierz więc opcję soup.a, która powinna zwrócić linki dostępne na stronie. Zróbmy to.
- W [40]:zupa.a
Out[40]:<a id=”top”></a>
- Znajdź odpowiednią tabelę:
Ponieważ poszukuje się tabeli zawierającej informacje o prezydentach w Indiach i Brazylii do 2010 r., ważne jest, aby najpierw znaleźć właściwą tabelę. Oto polecenie do przeszukiwania informacji zawartych we wszystkich tagach tabeli.
all_tables= zupa.find_all('stół')
Zidentyfikuj właściwą tabelę, używając atrybutu „class” tabeli, która musi filtrować właściwą tabelę. Następnie sprawdź nazwę klasy, klikając prawym przyciskiem myszy wymaganą tabelę strony internetowej w następujący sposób:
- Sprawdź element
- Skopiuj nazwę klasy lub znajdź nazwę klasy w prawej tabeli z danych wyjściowych ostatniego polecenia.
right_table=soup.find('table', class_='wikitable sortable plainrowheaders')
prawa_tabela
W ten sposób możemy zidentyfikować właściwą tabelę.
- Wyodrębnij informacje do DataFrame: istnieje potrzeba iteracji każdego wiersza (tr), a następnie przypisania każdego elementu tr (td) do zmiennej i dodania go do listy. Przeanalizujmy strukturę HTML tabeli tabeli. (wyodrębnij informacje dla nagłówka tabeli <th>)
Aby uzyskać dostęp do wartości każdego elementu, należy użyć opcji „find(text=True)” dla każdego elementu. Wreszcie w ramce danych znajdują się dane.
Istnieje wiele innych sposobów indeksowania danych za pomocą „BeautifulSoup”, które zmniejszają ręczne nakłady na zbieranie danych ze stron internetowych. Kod napisany w BeautifulSoup jest uważany za bardziej niezawodny niż wyrażenia regularne. Omawiana przez nas metoda web scrapingu wykorzystuje biblioteki „BeautifulSoup” i „urllib2” w Pythonie. To był krótki przewodnik dla początkujących, jak zacząć używać Pythona do web scrapingu.
Czekajcie na nasz następny artykuł o tym, jak web scraping wpływa na wzrost przychodów.
Planujesz pozyskiwać dane z sieci do nauki o danych? Jesteśmy tutaj, aby pomóc. Daj nam znać o swoich wymaganiach.
