Spis treści:

Co to jest web scraping?

Web scraping polega na automatycznym lub ręcznym pozyskiwaniu informacji ze stron internetowych, aby móc je następnie przechowywać w formie ustrukturyzowanych danych, dzięki czemu pobrane dane mogą zostać później wykorzystane np. w procesie analizy. Pomimo że proces ten może zostać wykonany ręcznie, to powszechnie wykorzystuje się w tym celu wyspecjalizowane boty, które pozwalają skalować ten proces o rzędy wielkości. Ogromne ilości danych zawartych w internecie stanowią niemałą pokusę dla osób i firm, które widzą w danych szansę na wypracowanie przewagi konkurencyjnej.

Dowolna, publicznie dostępna strona internetowa może być analizowana i przetwarzana w celu wydobycia interesujących informacji. Proces web scraping’u obejmuje głównie etap zbierania i zapisywania informacji w bazie danych lub w plikach tekstowych. Zebrane dane mogą zostać później wykorzystane w dowolny sposób, niekoniecznie związany z ich oryginalnym przeznaczeniem na przykład do celów badawczych lub do wypracowania przewagi konkurencyjnej.

Ciekawostka

Szacuje się, że ponad 40% ruchu w internecie to obecnie boty internetowe. Web scraping to tylko jeden z wielu procesów, jakie mogą być realizowane przez oprogramowanie będące botem. Jeżeli kiedykolwiek trafiłeś(aś) na reCAPTCHA-ę od Google, to już wiesz dlaczego. Niektóre instytuty badawcze podają jeszcze większy udział botów w ogólnym ruchu sięgający nawet 60%.

Olbrzymia ilość informacji zawartych w internecie sprawia, że web scraping jest powszechnie stosowaną metodą do pozyskiwania danych. Z technik web scraping’u korzystają zarówno jednostki, jak i największe firmy na całym świecie, które chcą zgromadzić jak największe zbiory danych, które pozwolą im uzyskać przewagę na wielu różnych polach.

Popularne przykłady wykorzystania metod web scraping’u

Internet jest największym zbiorem wiedzy, jaki kiedykolwiek stworzyła ludzkość. Informacje, które możemy w nim znaleźć, są zazwyczaj czytelne dla ludzi, ale dla maszyn już mniej. Niezbędnym elementem web scraping’u jest zaprojektowanie bota, który będzie w stanie precyzyjnie wyłuskać wskazane przez twórcę informacje. Przygotowanie reguł, proces wyodrębniania danych, zapis oraz późniejsza analiza stwarza ogromne możliwości, obok których nie można przejść obojętnie, jeżeli zależy nam na wypracowaniu przewagi konkurencyjnej. Zebrane dane, które zostaną odpowiednio przetworzone i poddane analizie, pozwolą wyciągnąć wnioski, które mogą następnie być wykorzystywane do podejmowania ważnych decyzji. Z całą pewnością decyzja poparta danymi jest bardziej precyzyjna i skuteczna.

Śledzenie cen i produktów u konkurencji

Różne podmioty śledzą zarówno ceny, jak i pojawiające się nowe produkty u konkurencji za pomocą zautomatyzowanych procesów, co pozwala im na zaproponowanie atrakcyjniejszej ceny. Cena produktu to nie jedyna informacja, która może się przydać w wypracowaniu przewagi. Równie istotne mogą okazać się informacje na temat nowego asortymentu lub zmian w asortymencie danego sklepu. Ciągłe monitorowanie konkurencji i analiza danych (bardzo często automatyczna) pozwala tworzyć skuteczniejsze strategie cenowe, a także uzyskać wgląd w trendy dla danej branży.

Automatycznie pozyskiwane informacje mogą być także wykorzystywane przeciwko konkurencji jako dodatkowa zachęta do kupna, ponieważ sklep dysponujący stale zmieniającymi się danymi może informować użytkowników, że taki sam lub podobny produkt jest u nich tańszy niż u konkurencji. Jako że natura nie znosi próżni, to nawet w tej dziedzinie powstały dedykowane platformy do monitorowania cen konkurencji takie jak na przykład Prisync lub Price2Spy. W tak dynamicznie zmieniającym się środowisku, jak e-commerce ręczne działania przerosłyby nawet najbardziej zdeterminowaną osobę.

Dygresja na temat uczciwości sklepów internetowych

Ciekawym i pożytecznym zastosowaniem dla web scraping’u może być weryfikowanie uczciwości sklepów internetowych w obliczu obowiązującej od 1 stycznia 2023 dyrektywy Omnibus, która m.in. nakazuje sklepom internetowym informowanie użytkowników o najniższej cenie danego produktu w okresie ostatnich 30 dni. Nowe przepisy odnoszą się do produktów, które zostały objęte promocją w sklepie. Przeanalizowane dane zebrane przez specjalnie do tego celu przygotowane web scraper’y mogłyby jednoznacznie określić, czy dany sklep internetowy jest dostosowany do nowego prawa i czy przypadkiem nie próbuje grać nieczysto względem prawa i klientów.

Pozyskiwanie leadów

Internet przepełniony jest zarówno publicznymi, jak i niepublicznymi danymi osobowymi oraz danymi kontaktowymi. Również web scraping można wykorzystać do pozyskania jak największej ilości leadów, które następnie będą wykorzystane w celu skontaktowania się z danymi osobami, aby przedstawić im swoją ofertę. Po obraniu celu np. platformy LinkedIn lub innego podobnego agregatora danych i określeniu grupy docelowej można przystąpić do zbierania cennych danych, które dają szansę na pozyskanie dodatkowych klientów.

Czy jest to legalne z punktu widzenia prawa? O tym w dalszej części artykułu.

Monitorowanie wzmianek w internecie na temat danej marki

Popularne polskie narzędzie do monitorowania wzmianek w internecie Brand24 bazuje m.in. na zautomatyzowanym procesie pozyskiwania danych z różnych stron internetowych takich jak fora, media społecznościowe czy blogi [https://pomoc.brand24.pl/pl/articles/3385173-w-jaki-sposob-brand24-zbiera-publiczne-wzmianki]. Na podstawie danych uzyskanych drogą web scrapingu można zaprezentować klientowi szereg różnych analiz czy raportów dotyczących odbioru marki w internecie. Web scraping pozwala takim firmom także na monitorowanie wzmianek o danym produkcie lub śledzenie opinii na dany temat w internecie. W takim przypadku wykorzystuje się prawdopodobnie wszelkie techniki web scrapingu. Tam, gdzie to możliwe korzysta się z API w celu oszczędzania zasobów serwera dostawcy informacji. W innych przypadkach ekstrakcja informacji jest realizowane na zasadzie pobrania kodu źródłowego strony, parsowania i wyłuskania części informacji.

Wyszukiwarki internetowe

Popularna wyszukiwarka internetowa Google (jak i pozostałe np. Bing) łączy proces crawlowania i scrapingu, aby indeksować strony internetowe. Dzięki zebranym danym Google jest w stanie w ułamku sekundy wyświetlić użytkownikowi ranking stron, które powinny realizować cel jego zapytania.

Pochodzenie danych pozyskanych metodami web scraping’u można udowodnić

Co ciekawe nielegalne wykorzystanie danych pozyskanych metodami web scraping’u można udowodnić. Firma Google dopuściła się scraping’u tekstów piosenek z platformy Genius, będącej największą stroną internetową z tekstami piosenek na świecie. Po co Google’owi teksty piosenek? Swego czasu w wyszukiwarce na samej górze wyników wyszukiwania pojawiały się teksty piosenek, gdy użytkownik wpisał odpowiednie zapytanie. W owym czasie wyświetlane teksty nie były oznaczone informacją, że pochodzą z serwisu Genius. Serwis Genius mający podejrzenia co do działań Google zaczął znakować swoje teksty w taki sposób, że stosował apostrofy o innym kodzie Unicode. Znaki były podmieniane na ściśle określonych pozycjach. Drugi, piąty, trzynasty oraz inne apostrofy ulegały podmianie, co jednoznacznie wskazywało, że tekst wyświetlany przez wyszukiwarkę Google pochodził z serwisu Genius.

Machine learning, data science a web scraping

Web scraping posiada szereg zalet, do których należy głównie szybkość pozyskiwania danych, co pozwala zapełniać ogromne bazy danych w krótkim czasie. Nie umknęło to badaczom, pasjonatom technologii i firmom, które chętnie pozyskują dane, następnie wykorzystywane do uczenia swoich sieci neuronowych. Czasem zachodzi potrzeba pozyskania zewnętrznych danych, kiedy sami nie dysponujemy odpowiednią ich ilością. Oczywiście nie mamy kontroli nad danymi z zewnątrz i trzeba je jeszcze przed analizą odpowiednio oczyścić i przygotować. Samo czyszczenie danych zajmuje zazwyczaj więcej czasu niż uczenie maszynowe. Badacze zajmujący się machine learningiem stosunkowo często uciekają się do pozyskiwania danych tą metodą.

Przykładem może być opracowanie modelu, którego celem jest określenie czy opinia na dany temat lub produkt jest pozytywna, neutralna czy negatywna. Taki model można z powodzeniem wykorzystać podczas automatyzacji marketingu. Aby stworzyć taki model, niezbędne jest zebranie sporej (rzędu miliona lub milionów) ilości opinii z różnych serwisów wraz z przypisaną oceną np. w skali 1 do 5. Zebrane dane po dostosowaniu ich do procesu uczenia maszynowego pozwolą stworzyć skuteczne narzędzie, które pozwoli na selekcję negatywnych komentarzy, dzięki czemu osoba odpowiedzialna za PR firmy będzie w stanie szybciej reagować w kwestii nadszarpniętej reputacji marki.

Czym web scraping różni się od web crawling'u?

Co w przypadku kiedy wiemy jakie dane chcemy pozyskać, ale nie znamy wszystkich adresów URL, pod którymi te dane się znajdują? Zarówno web scraper, jak i web crawler zaliczamy do botów internetowych, jednak dzieli je pewna różnica koncepcyjna. Typowy web scraper przed rozpoczęciem działania ma już gotową listę adresów URL, z których wyodrębni dane. Taką listę można przygotować ręcznie lub wykorzystać web crawler.

Web crawler do zbierania linków potrzebuje w zasadzie pierwszego adresu URL, od którego rozpocznie poszukiwanie kolejnych linków. Web crawler w zależności od konfiguracji zbiera kolejne adresy, które następnie dodaje do swojej wewnętrznej kolejki linków do odwiedzenia. Web crawler kończy swoją pracę, kiedy w swojej kolejce nie ma już nowych adresów do odwiedzenia. Efektem pracy web crawlera jest zazwyczaj lista linków, które w zależności od potrzeb można jeszcze dodatkowo przefiltrować.

Wykorzystanie web scraping’u w analizie pod kątem SEO

Web scraping ma ogromne znaczenie w kwestii tworzenia audytów stron internetowych. Wyspecjalizowane narzędzia takie jak Screaming Frog skanują i zapisują w swoich bazach danych wszelkie istotne informacje dotyczące technicznych aspektów audytowanej strony, które doświadczony specjalista technicznego SEO może wykorzystać do dostosowania witryny do wymagań stawianych przez Google.

Techniki web scrapingu można wykorzystać także do tworzenia całkiem przydatnych narzędzi, które usprawniają pracę. Podczas pracy w KS udało mi się stworzyć kilka narzędzi wykorzystujących tę technikę pozyskiwania danych i służyły one m.in. do:

  • sprawdzania spójności językowej w obrębie danej witryny — jeżeli strona internetowa posiada kilka wersji językowych, to narzędzie na podstawie zebranych danych podpowiada, która podstrona zawiera niespójności językowe np. w atrybutach i tagach HTML lub w samej treści. Wygenerowany raport może również zawierać informacje, czy na danej podstronie w treści artykułu znajdują się linki do innych podstron w innej wersji językowej.
  • sprawdzania możliwości linkowania wewnętrznego — odpowiednio przetworzone algorytmami NLP lub metodami analitycznymi dane zbierane przez web scraper pozwalają odkrywać nowe możliwości linkowania wewnętrznego w obrębie serwisu.
  • tworzenia briefu artykułu na podstawie konkurencji w top 10 — można w prosty sposób stworzyć narzędzie, które będzie pokazywało w sposób automatyczny strukturę nagłówków dla top 10 stron na dane zapytanie w Google. Takie dane mogą posłużyć do tworzenia briefu dla copywritera. Podobne narzędzie istnieje i to w o wiele bardziej zaawansowanej formie. Jest ono znane w branży SEO pod nazwą Surfer SEO.

Zalety web scraping'u

Pozyskiwanie danych w sposób zautomatyzowany ma liczne zalety, do których można zaliczyć:

  • o rzędy wielkości krótszy czas pozyskiwania danych — człowiek jest bez szans w porównaniu z szybkością i precyzją maszyny,
  • skalowalność - automaty pozwalają na pozyskiwanie danych na dużą skalę,
  • niski koszt uzyskania informacji — w zależności od skali może wystarczyć nawet najmniejszy serwer VPS za kilka złotych,
  • integralność danych — człowiek mógłby się pomylić podczas przenoszenia danych, a maszyna zrobi to bezbłędnie, o ile została bardzo dobrze przygotowana do tego procesu,
  • elastyczność - dostosowanie scraper’a do swoich potrzeb w praktycznie nieograniczony sposób,
  • niskie koszty utrzymania — struktura serwisu internetowego lub jego API może zmienić się po pewnym czasie, ale zazwyczaj wymaga to tylko drobnych zmian w logice/regułach bota,
  • ustrukturyzowane dane — dzięki nałożonej strukturze dane mogą być poddawane obróbce przez inne oprogramowanie np. służące do analizy danych.

Wady web scraping’u

Niestety web scraping ma także swoje mankamenty:

  • jeżeli nasze potrzeby wymagają bardzo spersonalizowanego rozwiązania, to własnoręczne stworzenie bota w krótkim czasie lub znalezienie gotowego rozwiązania może przekroczyć nasze chęci lub możliwości,
  • boty zbierające dane zazwyczaj muszą być monitorowane i kontrolowane (szczególnie na początkowym etapie pozyskiwania informacji) pod kątem poprawności zbieranych danych. Początkowe wersje bota mogą nie uwzględniać wszystkich przypadków, więc istnieje pewne prawdopodobieństwo, że prędzej czy później bot trafi na strukturę, której nie będzie w stanie poprawnie obsłużyć. Monitoring dotyczy głównie projektów, w których dane będą zbierane przez wiele dni, tygodni, miesięcy lub nawet lat,
  • niektóre strony internetowe „nie lubią” być scrapowane i starają się blokować podejrzane działania — jest to jeden z najbardziej problematycznych czynników podczas tworzenia web scraperów, lecz na bieżąco powstają kolejne rozwiązania mające na celu omijanie zabezpieczeń. Obecnie dosyć powszechnie korzysta się z puli serwerów proxy, dzięki którym możliwe jest wykorzystanie serwerów pośredniczących w procesie pozyskiwania danych, które z założenia nie powinny wzbudzać podejrzeń przez serwer, na którym znajdują się cenne dla nas dane.

Czy web scraping jest legalny?

Duża dostępność danych w internecie stwarza pokusę wykorzystania ich w sposób komercyjny. Dosyć łatwo zauważyć, że dane pozyskiwane w taki sposób mogłyby posłużyć do stworzenia wszelkiego rodzaju porównywarek cen. Pomimo tego, że takie dane są powszechnie dostępne publicznie, to rodzi się pytanie, czy ponowne ich wykorzystanie (często w celach zarobkowych) będzie zgodne z prawem.

Czy gromadzenie i przetwarzanie danych pobranych z internetu na potrzeby wewnętrzne lub zewnętrzne jest w pełni legalne? Istnieją pewne przepisy, które należy brać pod uwagę, zanim zaczniemy gromadzić i przechowywać dane. Mimo że web scraping wydaje się być w pełni legalny, to i tak istnieje pewne ryzyko prawne. Jeżeli baza danych jest chroniona na gruncie prawa sui generis, czyli właściciel bazy poniósł znaczne inwestycje (i jest to w stanie udowodnić) w celu stworzenia lub uzyskania zawartości bazy, to nie możemy pozyskać z takiej bazy całej zawartości lub jej istotnej części. Mimo wszystko przed przystąpieniem do zautomatyzowanego pobierania danych warto zapoznać się z następującymi aktami prawnymi:

Może zdarzyć się, że całe przedsięwzięcie przygotowania web scrapera będzie bez sensu, ponieważ interesujące nas dane mogą być gdzieś dostępne np. na stronach rządowych takich jak dane.gov.pl oraz danepubliczne.imgw.pl.

Osobną kwestią jest także regulamin, który ma indywidualny charakter dla każdego serwisu. Na przykład w regulaminie serwisu opineo.pl jest jasno określone, że Opineo zabrania używania automatycznych rozwiązań informatycznych, które pozwalają na automatyczne pobieranie i agregowanie zawartości serwisu. W regulaminie jest także mowa o zakazie destabilizowania serwisu za pomocą botów i innych podobnych rozwiązań. W tym miejscu warto płynnie przejść do tematu, jak nie narażać się serwisom i pozyskiwać dane w sposób, który nie wpłynie negatywnie na ich działanie.

Czy web scraping jest szkodliwy?

Niestety web scraping uchodzi za szkodliwy. Aby nie szkodzić serwerowi, na którym znajdują się dane, warto kierować się kilkoma istotnymi zasadami:

  1. Boty powinny przestrzegać reguł zawartych w pliku robots.txt - w pliku twórcy serwisu mogą określić, które zasoby nie powinny być pobierane przez roboty. Warto także respektować dyrektywę Crawl-delay, której wartość określa ile maksymalnie zapytań możemy wykonać w danej jednostce czasu - przekroczenie tej wartości najczęściej skutkuje odpowiedzią serwera informującą o zbyt dużej ilości zapytań (kod odpowiedzi 429, czyli Too Many Requests).
  2. Jeżeli serwis udostępnia API, to zdecydowanie lepiej jest wykorzystać ten sposób pozyskiwania danych, który w znacznie mniejszym stopniu obciąża serwer niż w przypadku, kiedy pobieramy całą strukturę HTML. Może zdarzyć się sytuacja, w której API oferuje więcej możliwości (np. pobieranie większej liczby produktów) niż to, co oferuje interfejs strony internetowej dla użytkownika.
  3. Najlepiej jest scrapować w godzinach, w których serwer jest najmniej obciążony - zazwyczaj są to godziny nocne. Serwer o tej porze będzie obsługiwał znacznie mniej rzeczywistych użytkowników.
  4. Nie zużywać więcej zasobów niż nakazuje rozsądek - jeżeli część zasobów pobierana jest z serwera CDN to ryzyko zaszkodzenia serwisowi jest znacznie mniejsze.
  5. Serwery są obecnie o wiele bardziej wydajne i posiadają więcej zasobów w postaci pamięci RAM oraz mocy obliczeniowej procesora, ale mimo tego dobrą praktyką jest zadbanie o podtrzymanie połączenia HTTP(S), ponieważ samo nawiązanie połączenia zajmuje stosunkowo dużo czasu. Podtrzymując połączenie, które będziemy wykorzystywali do pobierania wielu różnych zasobów, jest preferowaną opcją, ponieważ można w ten sposób znacznie szybciej pobierać zasoby.
  6. Pozyskiwać tylko publicznie dostępne informacje i nie przetwarzać danych osobowych. Na ten temat można uzyskać więcej informacji w umieszczonych wyżej aktach prawnych.

Dalsza część artykułu powinna zainteresować osoby, które chciałyby dowiedzieć się czegoś więcej w kwestiach technicznych.

Krótki przegląd narzędzi umożliwiających web scraping

Web scraping z wykorzystaniem Google Sheets

web scraping w Google Sheets
Wykorzystanie Google Sheets jako narzędzia do scrapowania danych ze stron internetowych. W tym przypadku pobieranie tytułów stron głównych popularnych portali informacyjnych z wykorzystaniem języka XPath

Za pomocą Google Sheets - popularnego narzędzia chmurowego - możemy stworzyć prosty web scraper, który wyciągnie z sieci interesujące nas dane. Narzędzie daje możliwość skorzystania z kilku funkcji, które pozwalają na pobranie danych znajdujących się pod danym adresem URL. Są to:

  • importhtml,
  • importfeed,
  • importdata,
  • importxml - najbardziej elastyczna spośród wymienionych funkcji.

Aby korzystać z wyżej wymienionych funkcji trzeba poznać podstawy języka XPath, dzięki któremu można wskazać, które dane chcemy wyodrębnić z danej struktury XML. Oto kilka dodatkowych funkcji, które przydadzą się do tworzenia web scraperów w Google Sheets: transpose, isurl, hyperlink, detectlanguage, index, regexreplace.

Google Sheets oferuje zaskakująco dużo, jeżeli chodzi o sporadyczne wykorzystanie web scraping’u na niewielką skalę. Nie jest to jednak rozwiązanie, które polecałbym do średniozaawansowanych lub zaawansowanych działań. Google Sheets pozwala przeważnie na użycie od kilkudziesięciu do kilkuset wywołań funkcji pobierających dane z podanego adresu URL na godzinę.

Ręczny web scraping z wykorzystaniem Chrome Devtools

Z tego narzędzia korzystam w swojej codziennej pracy, ponieważ nie tylko pozwala mi ono na szybkie zbieranie potrzebnych danych, ale także umożliwia analizę strony i przygotowanie zestawu selektorów, które następnie mogę wykorzystać do tworzenia web scraper’ów. Warto zapoznać się z zakładkami Elementy, Konsola, a także Sieć, jeżeli zależy nam na odkryciu, czy strona korzysta także z API, które można by było wykorzystać.

web scraping w chrome devtools
Podgląd zakładki Sieć (ang. Network), gdzie można zobaczyć zapytania wykonywane za pośrednictwem przeglądarki internetowej oraz sparsowane odpowiedzi serwera

W zakładce Konsola można uruchomić kod JavaScript, który posłuży do wyłuskania informacji znacznie szybciej niż ręczne kopiowanie pojedynczych informacji lub kopiowanie zestawu danych i ręczne ich czyszczenie.

Custom Extraction w Screaming Frog

Popularne w branży SEO narzędzie Screaming Frog umożliwia nie tylko pozyskiwanie typowych danych ze stron internetowych takich jak nagłówki, metatagi czy linki do grafik, ale pozwala także „wyciągnąć” ze strony precyzyjnie wskazane przez nas zasoby. Można tego dokonać w okienku Configuration > Custom > Extraction

  • Selektorów XPath - na przykład selektor //meta[@name='viewport']/@content służy do wyciągnięcia zawartości atrybutu content dla elementu meta, którego wartość atrybutu name to „viewport”.
  • Selektorów CSS - dla przykładu selektor #content > h1 wyodrębni nam zawartość nagłówka H1, którego bezpośrednim rodzicem w strukturze strony internetowej jest element o identyfikatorze content. Za pomocą selektorów CSS można wydobyć m.in. wartości atrybutów.
  • Wyrażeń regularnych - wyrażenia regularne przydają się do wyodrębniania informacji, które nie są objęte strukturą, która jest poprawna z punktu widzenia selektorów CSS lub XPath. Dobrym przykładem będzie tutaj wyciąganie informacji ze skryptów JS umieszczonych w kodzie strony. Za pomocą wyrażenia regularnego ["'](GTM-.*?)["'] jesteśmy w stanie wyłuskać identyfikator kontenera z Menedżera tagów Google.

Przykłady użycia tego modułu zostały opisane na stronie producenta tego przydatnego narzędzia - https://www.screamingfrog.co.uk/web-scraping/. Niestety w darmowej wersji oprogramowania nie znajdziemy tej jakże przydatnej funkcjonalności. Screaming Frog całkiem dobrze spisuje się jako web scraper, ale dla specyficznych przypadków często trzeba sięgnąć po rozwiązania, które nie będą nas ograniczały w żaden sposób. Takim rozwiązaniem są web scrapery pisane w różnych językach programowania przez programistów.

Własnoręcznie pisane boty - jakie języki i biblioteki są często wykorzystywane?

Web scraping jest na wyciągnięcie ręki dla osób, które sprawnie posługują JavaScript’em lub Python’em w stopniu podstawowym.

W przypadku języka JavaScript często wykorzystywanymi bibliotekami i frameworkami są:

  • Node Fetch - biblioteka umożliwiająca pobieranie zasobów z sieci.
  • cheerio - biblioteka do parsowania HTML, która w połączeniu z Node Fetch idealnie sprawdza się w wyodrębnianiu danych ze stron statycznych.
  • Puppeteer to narzędzie umożliwia pozyskiwanie danych ze stron generowanych dynamicznie. Biblioteka umożliwia sterowanie przeglądarką za pomocą kodu JavaScript.
  • Playwright - narzędzie o zbliżonej funkcjonalności do Puppeteer’a.
  • Klient bazy danych np. SQLite - baza danych przydaje się do organizowania i przechowywania zgromadzonych danych, jest to rozwiązanie pod wieloma względami lepsze niż przechowywanie danych w postaci plików tekstowych.

W przypadku języka Python mamy najczęściej do czynienia z:

Rozwiązania Low Code lub No Code

W ostatniej dekadzie bardzo dynamicznie rozwijają się platformy, umożliwiające osobom bez doświadczenia w programowaniu tworzenie swoich botów internetowych, które są już na tyle zaawansowane, że poradzą sobie ze zbieraniem interesujących danych w prawie każdym przypadku. Do takich platform można zaliczyć m.in.:

  • Apify
  • Make.com - platforma do automatyzowania procesów za pomocą wizualnego edytora
  • Zapier - alternatywa dla Make
  • n8n - alternatywa open source dla Zapier’a i Make’a

Słowo o selektorach CSS oraz XPath

Co w przypadku kiedy strona internetowa często zmienia swoją strukturę? Aby uczynić web scraper jak najbardziej odpornym na wszelkie zmiany w strukturze strony, selektory CSS lub XPath powinny być tak proste, jak to możliwe, ale nie prostsze. Należy unikać tworzenia selektorów, które są zbyt specyficzne i zawierają w sobie zbędne elementy, przez które w przyszłości po zmianie struktury strony mogą spowodować, że selektor będzie bezużyteczny, ponieważ nie będzie już wskazywał na interesujący nas zasób.

Trzeba znaleźć złoty środek pomiędzy precyzją a solidnością. Określając w rozsądny sposób selektory, jesteśmy w stanie stać się w pewnym stopniu odporni na zmiany wprowadzane w strukturze strony przez dewelopera lub administratora. Zdarzają się sytuacje, że struktura, atrybuty, nazwy klas i identyfikatorów zmieniają się na tyle często, że należy radzić sobie w inny sposób. W takich sytuacjach trzeba się wykazać kreatywnością lub znajomością innych technik wyłuskiwania danych ze struktury HTML, takich jak szukanie w strukturze elementów zawierających określony fragment tekstu.

Podsumowanie

Web scraping to technika polegająca na ręcznym lub automatycznym pobieraniu danych z internetu. Można to zrobić za pomocą specjalnych narzędzi lub programów, które przeszukują strony internetowe i zbierają informacje, takie jak teksty, obrazy czy dane dotyczące cen produktów.

Główną zaletą web scraping’u jest to, że pozwala on na szybkie i automatyczne zbieranie dużych ilości danych, które można potem wykorzystać do różnych celów, np. do tworzenia zestawień cen produktów, monitorowania zmian cen na rynku czy do badań nad trendami w sieci.