Web scraping to technika, która pozwala na automatyczne pozyskiwanie danych ze stron internetowych. Zamiast kopiować informacje ręcznie, możemy użyć programów, które zrobią to za nas. Scraping może być przydatny w różnych sytuacjach między innymi przy zbieraniu cen produktów, recenzji czy innych danych dostępnych w Internecie.
Jak działa Web Scraping?
Web scraping opiera się na dwóch głównych etapach:
- Pobranie strony – Program wysyła zapytanie do strony internetowej, która odpowiada jej zawartością w HTML. W przypadku użycia biblioteki
- Ekstrakcja danych – Po pobraniu strony, program „wyciąga” z niej interesujące nas informacje, np. teksty, linki, obrazy itp.
Cały proces odbywa się za pomocą bibliotek i narzędzi, które ułatwiają pracę. Narzędzia te mogą zostać wykorzystane w skryptach automatyzujących cały ten proces.
Narzędzia do Web Scrapingu
Do scrapowania danych można używać różnych bibliotek, w zależności od języka programowania. Poniżej przestawione są przykłady kodu w dwóch językach Python i JavaScript. Wymagane jest zainstalowanie poszczególnych bibliotek gdyż nie występują one domyślnie w tych językach. Można to zrobić używając menedżerów pakietów pip i npm.
Scrapy
Scrapy to framework w Pythonie, który ułatwia pobieranie wielu stron jednocześnie. Jest szybki i pozwala na łatwe zbieranie danych.
Przykład

Ten przykład zbiera cytaty i ich autorów ze strony quotes.toscrape.com.
Puppeteer
Puppeteer to narzędzie dostępne w Node.js, które umożliwia scrapowanie stron dynamicznych. Dzięki niemu możemy widzieć stronę tak, jakbyśmy otwierali ją w przeglądarce. W rzeczywistości biblioteka steruje prawdziwą przeglądarką zainstalowaną w systemie. Puppeteer ogranicza się wyłącznie do Google Chrome. Całość procesu odbywa się poprzez Webdriver czyli interfejs API do interakcji z przeglądarką.
Przykład

Ten fragment kodu podobnie jak poprzedni pobiera cytaty oraz wyświetla je w konsoli.
BeautifulSoup i Requests
Dwie ciekawe biblioteki w Pythonie. Requests pobiera stronę wysyłając żądanie HTTP, a BeautifulSoup analizuje (parsuje) HTML, wyciągając interesujące nas dane.
Przykład

Ten przykład tak jak dwa poprzednie robi to samo lecz tutaj praca jest podzielona między dwie biblioteki.
Prawo a Web Scraping
Choć web scraping jest bardzo ciekawym tematem, warto pamiętać o kwestiach prawnych. Wiele stron internetowych zabrania scrapowania swoich danych w swoich warunkach użytkowania. Właściciele witryn mogą blokować dostęp do swoich stron, używając pliku robots.txt lub CAPTCHA. Dodatkowo, zbieranie danych osobowych bez zgody właściciela strony może naruszać przepisy o ochronie danych osobowych. Pamiętaj, by zawsze sprawdzać, czy scraping nie łamie regulaminu danej strony oraz prawa.