Web scraping czym jest i jakie niesie konsekwencje




Zbiory informacji są fundamentem Data Science, a spektrum ich gromadzenia rozszerza się z co raz to nowszymi metodami. Jedną z nich jest tzw. "web scraping", czyli krótko mówiąc, automatyczne zbieranie danych z sieci.


Czym jest web scraping?

Web scraping to proces automatycznego pobierania, czyli tzw. „scrapowania” danych z stron internetowych. W przeciwieństwie do żmudnej, przyprawiającej o dreszcze ręcznej selekcji danych Big Data, web scraping korzysta z inteligentnej automatyzacji w celu pobrania setek, milionów, a czasami i miliardów wierszy danych z wydawałoby się bezgranicznego Internetu. (1) To symulowanie zachowań człowieka w interakcji ze stroną internetową – nie tylko pobieranie całej treści, ale wypełnienie formularzy, nawigacja po interfejsie graficznym, obsługa HTML zwracanego jako wynik zapytania. Takie zabiegi mogą być nazywane również Screen-Scrapingiem. (2)


Jak to wygląda w praktyce?

Dla zaoszczędzenia czasu, specjaliści od zbierania danych piszą instrukcje komputerowe, które przekładają się na efektywną i szybką pracę. Różnica pomiędzy ilością zebranych informacji poprzez pracę ręczną, a automatyczną, okazuje się na tyle duża, że w gruncie rzeczy rodzi się pytanie, czy         z punktu widzenia dostawcy stron internetowych pozwalanie na web scraping jest dopuszczalne? Ponoszą oni koszt serwowania danych, który przez każde wykonane zapytanie zwiększa się.

Umieszczając to w odpowiedniej perspektywie: zanim człowiek sprawdzi jeden artykuł, procesor przewertuje cały rok danych i krzyknie "Next!". Web Scraping zmniejsza czas pracy osób zbierających dane, ale koszta dostawcy stają się większe i nierozłożone. W ramach wizualizacji problemu załóżmy, że z pewnego serwisu internetowego przez dwa tygodnie pobierano dane w sposób ręczny, czyli mozolnie m.in. artykuł po artykule oraz automatyczny za pomocą web scrapingu, spójrz na Rysunek 1.



Przyjmując uproszczoną cenę 0,02 euro za odpytanie, koszty można przedstawić tak jak na Rys. 2.





Zgodnie z wykresami można odnieść wrażenie, że istnieje zauważalna różnica pomiędzy automatyzacją a manualną pracą. Oczywiście są to tylko teoretyczne dane, których zadaniem jest przedstawienie idei. W serwisie produkcyjnym skale wyglądałyby inaczej, a sama natura problemu byłaby szersza.            Co w sytuacji, gdy sprzęt dostawcy nie będzie w stanie obsłużyć dużej ilości zapytań wyprodukowanych w krótkim okresie przez automat?


Gdzie leży granica?

W dobie web-scrapingu dostawcy internetu mogą czuć się wykorzystywani oraz poszkodowani, ponieważ tworząc swoje serwisy nie byli przygotowani na takie techniki. Problemy takiej natury mogą przenieść się do sal sądowych, co jak się okazuje przechyla sprawiedliwość w stronę automatyzacji.


Zapraszam do lektury postów na dany temat:

Co robić?

W mojej opinii, istotnym aspektem pozostaje znalezienie złotego środka. Przeciążanie systemów nie nastąpi, jeżeli proces automatyzacji zostanie rozsądnie ograniczony przez jego autora.


Co Wy sądzicie o tym zagadnieniu?



Kamil Gross

Machine Learning Developer w BitPeak

kamil.gross@bitpeak.pl

Źródła:

(1) Autorskie tłumaczenie fragmentu strony: https://scrapinghub.com/what-is-web-scraping/

(2) Autorskie tłumaczenie fragmentu strony: https://www.perl.com/pub/2003/01/22/mechanize.html/