Automatyczne pobieranie danych na dużą skalę.

Jak można usłyszeć w naszym promocyjnym video, dostęp do wartościowych informacji jest w dzisiejszych czasach podstawowym wyznacznikiem sukcesu przedsiębiorstwa. Tak jest faktycznie. Bez informacji o tym, co dzieje się w otoczeniu, w erze szybko postępującej cyfryzacji i digitalizacji, firmy nie są w stanie utrzymać się na rynku.

Ekstrakcja danych, inaczej określana jako web scraping lub data mining, to właśnie dziedzina informatyki skupiająca się wokół zagadnień związanych z pobieraniem danych z internetu. Jeszcze kilka lat temu obszar czynności uważanych za relatywnie nieskomplikowane, z biegiem czasu rozwinął się tak bardzo, że nasza działalność w DataMiners jest całkowicie skoncentrowana właśnie wokół tego tematu.

Futuristic Concept: Female Computer Engineer Looking on the Two Displays while Working on the Computer. Screen Shows Interactive Neural Network, Artificial Intelligence Project, User Interface

Głównym celem i założeniem web scrapingu jest automatyczne pozyskiwanie informacji z sieci. To właśnie słowo automatyczne jest tutaj kluczowe. Zacznijmy od tego, po co i jak pobiera się informacje w sposób tradycyjny, czyli ręcznie.

Wyobraźmy sobie sklep internetowy, który sprzedaje, powiedzmy, proszki do prania. Żeby być w stanie zaoferować odbiorcom konkurencyjną cenę, właściciel sklepu musi wiedzieć, ile dany proszek kosztuje w innych sklepach internetowych lub popularnych marketplace’ach. Pierwsze, co przychodzi do głowy, to sporządzenie listy najistotniejszych konkurentów, a następnie żmudne, ręczne wypełnianie tabelek w Excelu cenami, które dadzą nam obraz sytuacji. Łatwo sobie wyobrazić, że taka czynność może spokojnie zająć kilka godzin dziennie, a więc przerodzić się w pełnoprawny etat osoby, która nie będzie robiła nic innego, jak tylko spisywała ceny ze stron sklepów i wklejała je w odpowiednie miejsca arkusza kalkulacyjnego. Drogo i mało efektywnie, w dodatku grozi szybkim wypaleniem.

Czy można inaczej? Jak najbardziej. Kolejna naturalna myśl, która się pojawia, to zastanowienie się, w jaki sposób można cały ten proces zautomatyzować. Dla firm bez dedykowanych działów IT, w dodatku mocno wyspecjalizowanych, to często roadblock nie do przeskoczenia. Czego właściwie szukać w Google? Co wpisać, „po ile sprzedają proszek w internecie”? Często nawet samo sformułowanie odpowiedniej frazy wyszukiwania sprawia trudności osobom, które wcześniej nie miały z tym zagadnieniem do czynienia.

W dużym, ogólnym skrócie – web scraping opiera się na pisaniu skryptów (zazwyczaj w językach Python albo JavaScript), które automatyzują nasze ręczne działania w przeglądarce. Jeżeli musimy wejść na dwieście podstron, z których każda zawiera pięćdziesiąt pozycji z ceną, możemy to zautomatyzować.

Trochę innym przykładem, ale bardzo popularnym i często pojawiającym się w zapytaniach od naszych klientów, jest pozyskiwanie danych kontaktowych ze stron internetowych. Łatwo sobie wyobrazić, że mamy do zaoferowania jakąś usługę, skierowaną do konkretnego segmentu odbiorców. Na przykład taką, która może zainteresować wszystkie warsztaty samochodowe w kraju. Po raz kolejny – zamiast ręcznie wchodzić na każdą z witryn i kopiować adresy e-mail razem z numerami telefonów, możemy napisać skrypt, który sam wejdzie na każdą ze stron, pobierze wymagane informacje i elegancko zaprezentuje je nam w czytelnej postaci, łatwej do przekazania osobom odpowiedzialnym za marketing.

No dobrze. A jeśli chcielibyśmy zrobić to sami, to od czego właściwie należy zacząć? Przyda się nam podstawowa znajomość języka HTML, do analizy struktury strony docelowej, oraz podstawowa znajomość języka JavaScript, w którym będziemy programować nasz scenariusz.

Prosty przykład z kodem źródłowym – robimy zrzut ekranu

Spróbujmy przyjrzeć się bardzo prostemu przykładowi skrpytu w języku JavaScript, wykorzystującemu bibliotekę PlayWirght. Poniższy tutorial jest przygotowany z myślą o uruchamianiu go w środowisku z systemem operacyjnym Linux.

Najpierw instalujemy bibliotekę PlayWright:

npm init -y
npm install playwright

Następnie tworzymy plik index.js, np. za pomocą komendy:

nano index.js

i uzupełniamy go poniższym kodem:

const { chromium } = require('playwright');
(async () => {

  // uruchamiamy przeglądarkę
  const browser = await chromium.launch()
  const page = await browser.newPage()

  // zaczynamy pobieranie danych
  console.log('Starting data retrieval...');
  await page.goto('https://pl.wikipedia.org/wiki/Parki_narodowe_w_Polsce')

  // czekamy na pojawienie się nagłówka H1
  await page.waitForSelector('h1', { visible: true })

  // robimy zrzut ekranu
  await page.screenshot({ path: 'wikipedia.png' });

  // zamykamy przeglądarkę
  await browser.close()
})();

Uruchamiamy nasz skrypt komendą:

node index.js

Sukces! Po zakończeniu działania skryptu powinniśmy ujrzeć w katalogu plik wikipedia.png. Możemy otworzyć go w dowolnej aplikacji do przeglądania zdjęć.

Podsumowanie

Kwestii do rozwiązania, które pojawiają się przy bardziej zaawanswoanych próbach scrapowania danych jest tyle, że opisanie ich wszystkich zajęłoby kilka kolejnych artykułów.

Zainteresowanych mogę zaprosić na naszą anglojęzyczną grupę tematyczną Web Scraping World na Facebooku oraz oczywiście do bezpośredniego kontaktu ze mną i z naszą firmą. Z chęcią zrealizujemy każdy projekt!

https://dataminers.co
Contributor
Do you like Wojciech Żeglin's articles? Follow on social!
Comments to: Co to jest web scraping?

Twój adres e-mail nie zostanie opublikowany.

Attach images - Only PNG, JPG, JPEG and GIF are supported.

Login

Welcome to Typer

Brief and amiable onboarding is the first thing a new user sees in the theme.
Join Typer
Registration is closed.