Pobieranie danych z sieci Web

Jednym z mniej popularnych źródeł importu danych do arkusza kalkulacyjnego są informacje pochodzące ze stron internetowych. Pomimo mniejszego zainteresowania tym sposobem pobierania danych, warto zapoznać się z przebiegiem całego procesu. Nigdy nie wiadomo czy nie będziesz musiał odwołać się do strony www w poszukiwaniu ważnych informacji.

Power Query i dane z sieci Web

Narzędziem, za pomocą którego chcę zademonstrować pobieranie informacji z Internetu jest Power Query. Dla niewtajemniczonych, występuje on w Excelu 2010 i 2013 jako dodatek do programu, natomiast w Excelu 2016 i 2019 jest zaimplementowany w programie i tworzy grupę Pobieranie i przekształcanie danych na karcie Dane.

Sam proces importowania danych nie jest skomplikowany pod warunkiem, że informacje umieszczone na stronie internetowej są przechowywane w tabelach. Innymi słowy, dane są sformatowane przy użyciu tagów (znaczników) tabeli w języku HTML (Hyper Text Markup Language), który jest wykorzystywany do tworzenia dokumentów hipertekstowych. Z takimi właśnie dokumentami mamy do czynienia w sieci.

Jak pobrać dane ze strony internetowej?

Aby zaimportować dane umieszczone w sieci Web należy przede wszystkim znać adres strony, na której są one umieszczone. Dla przykładu w tym artykule posłużę się adresem http://www.nbp.pl/home.aspx?f=/kursy/kursya.html, który prowadzi do strony Narodowego Banku Polskiego prezentującej tabelę średnich kursów walut obcych.

KROK 1: Na karcie Dane w grupie Pobieranie i przekształcanie danych kliknij polecenie Z sieci Web.

KROK 2: W oknie dialogowym Z sieci Web wklej lub wprowadź z klawiatury adres URL i kliknij przycisk OK. Oczywiście musisz upewnić się, że masz połączenie z Internetem. W przeciwnym razie pobranie danych nie będzie możliwe.

KROK 3: W oknie dialogowym Nawigator Power Query wyświetli zawartość strony internetowej, a dokładnie wszystkie zidentyfikowane tabele, które wskazana strona zawiera. Teraz musisz wskazać odpowiednią tabelę z kursami walut. Aby to zrobić kliknij na pierwszej z nich, czyli Document.

Po prawej stronie w widoku tabeli wyświetli się jej zawartość. Jak zauważysz, nie zawiera ona poszukiwanych informacji. Możesz klikać na kolejne tabele, aby obejrzeć co przedstawiają. Ostatecznie, tabela średnich kursów walut znajduje się w Table 0. Wybierz ją, a następnie kliknij przycisk Edytuj.

KROK 4: W edytorze Power Query zostanie wyświetlona zawartość uprzednio wskazanej tabeli. Na tym etapie możesz zmienić nazwę zapytania z Table 0 na np. TabelaNBP.

KROK 5: Jeżeli nie zamierzasz przeprowadzać żadnych przekształceń danych, to zamknij edytor i załaduj dane do arkusza jako tabelę. W zależności od posiadanej wersji możesz również utworzyć raport tabeli przestawnej, wykres przestawny lub tylko połączenie. Nie zapomnij kliknąć przycisku OK.

Brawo! W ten oto prosty i szybki sposób zaimportowałeś dane z sieci Web.

Ponieważ umieszczona w arkuszu tabela jest połączona ze swoim źródłem, czyli stroną NBP, to wystarczy kliknąć na niej prawym przyciskiem myszy, aby wybrać polecenie Odśwież i zaktualizować posiadane dane.

Prawda, że proste?

Ciemna strona sieci Web

Niestety przedstawiony powyżej sposób pobierania danych ze strony internetowej działa tylko i wyłącznie wtedy, kiedy dane są sformatowane jako tabela (z odpowiednimi znacznikami w języku HTML).

Czy to oznacza, że z innych stron pobieranie jest niemożliwe? Absolutnie, nie! Natomiast sam proces wyszukiwania i docierania do takich informacji jest niezmiernie żmudny i czasochłonny. Dlatego zawsze w takim przypadku warto rozważyć czy nie masz możliwości otrzymania tych danych w inny sposób.

Jeżeli jesteś zainteresowany w jaki sposób można z takich stron pobierać informacje z użyciem Power Query, to zostaw komentarz pod wpisem. W odpowiedzi przygotuję kolejny artykuł.

I jeszcze jedna sprawa. Pamiętaj, że strony internetowe mogą być modyfikowane przez swoich właścicieli, co oznacza, że może zmienić się układ dokumentu i nagle Twoje zapytanie w Power Query odwołujące się do zawartości konkretnej strony www przestanie prawidłowo funkcjonować.