Automatyczne pozyskiwanie i analiza danych ze stron internetowych, znane jako skrobanie sieci (web scraping), to niezwykle przydatna technika. Ręczne wykonywanie tego zadania jest jednak uciążliwe i czasochłonne. Z pomocą przychodzą narzędzia, które znacząco przyspieszają i usprawniają ten proces, redukując jednocześnie koszty.
Co ciekawe, dzięki funkcji IMPORTXML Arkusze Google mogą stać się kompleksowym narzędziem do pozyskiwania danych z sieci. IMPORTXML umożliwia łatwe pobieranie informacji z witryn internetowych, które następnie można wykorzystać do analiz, tworzenia raportów i innych zadań opartych na danych.
Funkcja IMPORTXML w Arkuszach Google
Arkusze Google oferują wbudowaną funkcję o nazwie IMPORTXML, która umożliwia importowanie danych z formatów internetowych, takich jak XML, HTML, RSS i CSV. Jest to przełomowe rozwiązanie dla osób chcących pozyskiwać informacje ze stron internetowych bez konieczności tworzenia skomplikowanego kodu.
Podstawowa składnia funkcji IMPORTXML wygląda następująco:
=IMPORTXML(url; zapytanie_xpath)
- url: Adres internetowy strony, z której chcemy pobrać dane.
- zapytanie_xpath: Zapytanie XPath, które precyzuje, jakie dane chcemy wyodrębnić.
XPath (XML Path Language) to język służący do nawigowania po dokumentach XML, w tym HTML. Pozwala na wskazanie konkretnych danych w strukturze HTML. Zrozumienie zapytań XPath jest kluczowe dla prawidłowego wykorzystania funkcji IMPORTXML.
Zrozumienie XPath
XPath oferuje wiele funkcji i wyrażeń do nawigacji i filtrowania danych w dokumencie HTML. Dokładne omówienie XML i XPath wykracza poza ramy tego artykułu, dlatego skupimy się na kilku podstawowych pojęciach:
- Wybór elementu: Elementy wybieramy za pomocą / oraz //, które wskazują ścieżki. Na przykład /html/body/div zaznacza wszystkie elementy div w treści dokumentu.
- Wybór atrybutu: Atrybuty wybieramy za pomocą @. Przykładowo, //@href wybiera wszystkie atrybuty href na stronie.
- Filtry predykatów: Elementy można filtrować za pomocą predykatów umieszczonych w nawiasach kwadratowych ([]). Na przykład /div[@class=”container”] wybiera wszystkie elementy div z klasą „container”.
- Funkcje: XPath zawiera funkcje takie jak contains(), starts-with() i text(), umożliwiające wykonywanie konkretnych działań, takich jak sprawdzanie zawartości tekstu lub wartości atrybutów.
Znając składnię IMPORTXML, adres URL strony i wiedząc, który element chcemy wyodrębnić, pojawia się pytanie: jak zdobyć XPath danego elementu?
Aby wyodrębnić dane za pomocą IMPORTXML, nie musimy znać struktury witryny internetowej na pamięć. W każdej przeglądarce internetowej dostępne jest przydatne narzędzie, które pozwala błyskawicznie skopiować ścieżkę XPath dowolnego elementu.
Narzędzie „Zbadaj element” umożliwia wyodrębnienie ścieżki XPath elementów ze strony. Oto jak to zrobić:
- Przejdź do strony internetowej, którą chcesz przeszukać, za pomocą wybranej przeglądarki.
- Zlokalizuj element, z którego chcesz pobrać dane.
- Kliknij prawym przyciskiem myszy na ten element.
- Z menu kontekstowego wybierz opcję „Zbadaj element” („Inspect element”). Przeglądarka otworzy panel z kodem HTML strony. Podświetlony zostanie odpowiedni element w kodzie.
- W panelu „Zbadaj element”, kliknij prawym przyciskiem myszy na podświetlony element w kodzie HTML.
- Wybierz opcję „Kopiuj XPath”, aby skopiować ścieżkę XPath elementu do schowka.
Teraz, gdy posiadasz wszystkie niezbędne informacje, czas zobaczyć, jak działa funkcja IMPORTXML i wydobyć z niej kilka linków.
Jak pobierać linki ze strony internetowej za pomocą IMPORTXML
IMPORTXML pozwala na pobieranie różnorodnych danych ze stron internetowych, w tym linków, filmów, obrazów i innych elementów. Linki są kluczowym elementem analizy sieci, a analizując strony, do których prowadzą, możemy wiele dowiedzieć się o danej witrynie.
Dzięki IMPORTXML w Arkuszach Google możemy szybko pobrać linki i poddać je dalszej analizie za pomocą innych funkcji dostępnych w Arkuszach.
1. Pobieranie wszystkich linków
Aby pobrać wszystkie linki ze strony internetowej, można użyć następującej formuły:
=IMPORTXML(url; "//a/@href")
To zapytanie XPath wybiera wszystkie atrybuty href elementów, co powoduje wyodrębnienie wszystkich linków na stronie.
=IMPORTXML("https://pl.wikipedia.org/wiki/Nine_Inch_Nails"; "//a/@href")
Powyższa formuła pobierze wszystkie linki z artykułu na Wikipedii.
Dobrym rozwiązaniem jest umieszczenie adresu URL strony w oddzielnej komórce, a następnie odwoływanie się do tej komórki. W ten sposób formuła nie będzie zbyt długa i nieporęczna. To samo można zrobić z zapytaniem XPath.
2. Pobieranie tekstów wszystkich linków
Aby pobrać tekst linków wraz z ich adresami URL, można użyć następującej formuły:
=IMPORTXML(url; "//a")
To zapytanie wybiera wszystkie elementy ``, a z wyników można wyodrębnić tekst linku i adresy URL.
=IMPORTXML("https://pl.wikipedia.org/wiki/Nine_Inch_Nails"; "//a")
Powyższa formuła pobierze teksty linków z tego samego artykułu w Wikipedii.
Jak pobierać określone linki ze strony internetowej za pomocą IMPORTXML
Czasami potrzebujemy pobrać konkretne linki, które spełniają określone kryteria. Na przykład możemy chcieć wyodrębnić linki zawierające określone słowo kluczowe lub linki znajdujące się w konkretnej sekcji strony.
Dzięki odpowiedniej znajomości XPath możemy wskazać dowolny element, który nas interesuje.
1. Pobieranie linków zawierających słowo kluczowe
Aby pobrać linki zawierające określone słowo kluczowe, możemy wykorzystać funkcję XPath contains():
=IMPORTXML(url; "//a[contains(@href; 'słowo_kluczowe')]/@href")
To zapytanie wybiera atrybuty href elementów ``, w których href zawiera określone słowo kluczowe.
=IMPORTXML("https://pl.wikipedia.org/wiki/Nine_Inch_Nails"; "//a[contains(@href; 'album')]/@href")
Powyższa formuła pobierze wszystkie linki z tekstem zawierającym słowo „album” z przykładowego artykułu w Wikipedii.
2. Pobieranie linków z danej sekcji
Aby pobrać linki z określonej sekcji strony, możemy określić XPath tej sekcji. Na przykład:
=IMPORTXML(url; "//div[@class='sekcja']//a/@href")
To zapytanie wybiera atrybuty href elementów `` znajdujących się w elementach div z klasą „sekcja”.
Podobnie poniższa formuła wybierze wszystkie linki w div o klasie „mw-content-container”:
=IMPORTXML("https://pl.wikipedia.org/wiki/Nine_Inch_Nails"; "//div[@class='mw-content-container']//a/@href")
Warto pamiętać, że IMPORTXML można używać nie tylko do skrobania stron internetowych. Za pomocą funkcji z rodziny IMPORT można importować tabele danych ze stron internetowych do Arkuszy Google.
Mimo że Arkusze Google i Excel mają wiele wspólnych funkcji, to funkcje z rodziny IMPORT są dostępne wyłącznie w Arkuszach Google. Należy rozważyć inne metody importowania danych z witryn internetowych do programu Excel.
Uproszczenie skrobania sieci za pomocą Arkuszy Google
Skrobanie sieci za pomocą Arkuszy Google i funkcji IMPORTXML to uniwersalny i dostępny sposób na gromadzenie danych ze stron internetowych.
Opanowanie XPath i umiejętność tworzenia skutecznych zapytań pozwala odblokować pełny potencjał funkcji IMPORTXML i pozyskiwać cenne informacje z zasobów internetowych. Zacznij skrobać i przenieś swoją analizę sieci na wyższy poziom!
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.