W tym kursie, przedstawię Ci technikę Web scrapingu, wykorzystując język C# i bibliotekę HtmlAgilityPack
Czym jest web scraping?
Web Scraping to technika wyodrębniania danych ze stron internetowych, która zastępuje ręczne, powtarzalne wpisywanie lub kopiowanie i wklejanie. Dodatkowo pozyskane dane często są przechowywane w ustrukturyzowanym formacie. Obecnie skrobanie stron internetowych jest szeroko stosowane i ma wiele zastosowań, między innymi:
porównywanie cen w celu znalezienia najtańszej oferty (portal ceneo),
firmy mogą pobierać informacje odnoście produktów swojej konkurencji,
można pobierać informacje o potencjalnych klientach (osoby fizyczne lub inne firmy),
portale agregujące oferty o prace mogą pobierać informacje o nowych ofertach pracy z innych źródeł,
portale o nieruchomościach mogą pobierać dane o nowo powstałych projektach inwestycyjnych,
Jak działa web scraping?
Skrobiąc (scraping) stronę internetową, tak naprawdę piszemy kod, który wysyła żądanie do serwera, na którym znajduje się wskazana przez nas strona. Ogólnie nasz kod co napisaliśmy pobiera kod źródłowy strony, dokładnie tak samo jak robiłaby to przeglądarka. Zamiast jednak wyświetlać stronę, filtruje ją w poszukiwaniu elementów HTML, które określiliśmy, i wyodrębnia zawartość, którą poleciliśmy wyodrębnić.
Na przykład, gdybyśmy chcieli pobrać wszystkie tytuły zawarte w tagach H3 (np. ten tytuł „Więc jak działa web scraping” ma taką wielkość) z tej strony z artykułem, moglibyśmy napisać odpowiedni kod. Nasz kod zażądałby zawartości witryny z serwera i ją pobrał. Następnie przeszukiwał kod HTML strony w poszukiwaniu tagów H3. Za każdym razem, gdy znalazł tag H3, kopiował tekst znajdujący się wewnątrz tagu i wyświetlał go w dowolnym określonym przez nas formacie.
Pamiętaj o tym, że z punktu widzenia serwera żądanie strony za pomocą scrapingu jest tym samym, co załadowanie jej w przeglądarce internetowej. Kiedy używamy kodu do przesyłania tych żądań, najczęściej otwieramy strony znacznie szybciej niż zwykły użytkownik, a tym samym szybko możemy pochłaniać zasoby serwera właściciela witryny.