3 minuty Czytania

Czym jest web scraping i jak go wykorzystać?

Dane określone są współczesnym złotem bądź ropą naftową. Analogię tą upowszechnił The Economist swoim artykułem z 2017 roku, gdzie padło stwierdzenie, że najbardziej wartościowym zasobem świata przestała być ropa, a stały się dane. Oczywiście w wyścigu po ten „surowiec” przewagę mają korporacje technologiczne takie jak Google, Meta czy Amazon posiadające miliony użytkowników. Internet natomiast pełen jest publicznych przydatnych informacji. Drogą do ich efektywnego zebrania jest właśnie web scraping.

Co to jest web scraping?

Web scraping to metoda zdobywania danych ze stron internetowych. Zwykle uzyskane w ten sposób dane są zapisywane lokalnie albo w bazie danych tak, by móc je w przyszłości wykorzystać. Jeśli kiedyś kopiowałeś_aś dane ze strony internetowej i wklejałeś_aś je, na przykład w arkuszu kalkulacyjnym, to można powiedzieć, że, co prawda na małą skalę, ale dokonywałeś_aś web scrapingu. Natomiast to, co zwykle mają na myśli ludzie mówiący o web scrapingu, to oprogramowanie automatyzujące ten proces. Zwykle takie oprogramowanie to aplikacje, które odwiedzają pewne strony internetowe i wyciągają interesujące ich twórcę informacje. Dzięki automatyzacji jesteśmy w stanie pobrać bardzo duże ilości danych w krótkim czasie.

Człowiek siedzący przy biurku, na którym znajduje się komputer, nawiązujący do tematu artykułu czyli web scraping.
„Ręczny” web scraping

Jak to działa?

Gdy korzystając z przeglądarki internetowej wpiszemy adres strony, która nas interesuje, nasza przeglądarka wyśle do serwera obsługującego daną stronę zapytanie i wyświetli jego odpowiedź – o ile nie pomyliliśmy się wpisując adres, powinien to być dokument HTML opisujący wygląd i zawartość strony. Program scrapingujący również wysyła zapytanie do serwera obsługującego daną stronę, jednak zamiast wyświetlać treść odpowiedzi wyciąga z niej interesujące nas informacje.

Symbole bazy danych i pliku tekstowego, wyjaśniające gdzie crawler może zapisać dane.
Program web scrapingujący może, na przykład, interesujące nas informacje zapisać w bazie danych lub pliku tekstowym

Czym jest Crawler?

W kontekście tworzenia zautomatyzowanego oprogramowania do web scrapingu występującym często pojęciem jest Crawler. Crawler (inny termin to Spider) to program, który w określony sposób odwiedza różne strony w Internecie i wyciąga z nich informacje. Mogą to być ściśle określone strony, ale Crawler może też, na przykład, odwiedzać każdy napotkany link. Przykładem Crawlera jest Googlebot – robot internetowy używany przez Google. Odwiedza on publicznie dostępne strony i każdą z nich indeksuje. Z zebranych w ten sposób danych korzysta wyszukiwarka dobierając wyniki pasujące najlepiej do zapytania użytkownika.

Niebieski pająk symbolizujący crawlera
Naturalnym środowiskiem crawlerów jest pajęczyna (Web), dlatego często są nazywane pająkami

Zastosowania web scrapingu.

Jeśli chodzi o możliwe zastosowania web scrapingu to ogranicza nas jedynie dostępność danych, a tych w Internecie nie brakuje. Najpopularniejsze pola, w których jest wykorzystywany to:

  1. porównanie cen oraz monitorowanie konkurencji,
  2. generowanie danych kontaktowych potencjalnych klientów,
  3. monitorowanie marki i jej wizerunku,
  4. audyty SEO.

Jak zacząć?

Jeśli zagadnienie Cię zainteresowało to prawdopodobnie jesteś ciekawy_a jak zacząć wydobywać dane z Internetu. Pierwszą z możliwości jest zaprogramowanie rozwiązania dopasowanego do naszych potrzeb.

Najpopularniejszym językiem służącym do tego celu jest Python – posiada on wiele bibliotek umożliwiających scraping takich jak BeatifulSoup, lxml, Selenium czy Scrapy. Zwykle też oprócz samego wydobycia danych zależy nam na ich odpowiednim przetworzeniu oraz analizie. Jako, że język ten jest najpopularniejszym językiem programowania w całym obszarze Data Science nie będziemy mieli z tym problemu. Inne używane do tego języki to JavaScript, szczególnie przydatne, gdy strony, które nas interesują posiadają dużo dynamicznych treści. Częstym wyborem jest też Ruby. Najpopularniejsza biblioteka tego języka służącą do web scrapingu to Nokogiri.

Jeśli nie umiesz programować oraz nie chcesz wynająć kogoś, kto stworzy takie narzędzie dla Ciebie to opcją, którą warto zbadać są tzw. narzędzia „no-code”. Umożliwiają one stworzenie Crawlera bez konieczności  programowania, wykorzystując graficzny interfejs danej platformy. Wadą tego rozwiązania jest, po pierwsze, ograniczony zakres dopasowania rozwiązania do naszych potrzeb. Jeśli zadanie, które mamy w planach jest niestandardowe, może się okazać, że narzędzie z którego korzystamy nie ma funkcjonalności umożliwiających jego realizację. Po drugie, platformy udostępniające takie narzędzia zwykle są płatne przez co (szczególnie w dłuższej skali) uzyskane w ten sposób rozwiązanie może być dla Ciebie kosztowne.