Od linków do danych: Naucz się prostego przeglądania stron internetowych z KNIME | KNIME (2023)

Przewodnik dla początkujących dotyczący skrobania stron internetowych

Web scraping to skuteczna technika automatycznego wydobywania danych ze stron internetowych i oszczędzania czasu i zasobów, które można lepiej wykorzystać na inne (bardziej interesujące) zadania. Jest definiowana jako „czynność polegająca na pobieraniu informacji ze strony internetowej lub ekranu komputera i umieszczaniu ich w uporządkowanym dokumencie na komputerze”.

Wartość skrobania sieci

Korzyści ze skrobania sieci są ogromne. Możemy uzyskiwać dostęp i pobierać cenne dane z szerokiej gamy źródeł internetowych, dostarczając wglądu i informacji, które w przeciwnym razie byłyby czasochłonne lub trudne do uzyskania. Korzystając ze specjalistycznych narzędzi lub bibliotek, web scraping umożliwia nam poruszanie się po stronach internetowych, lokalizowanie określonych elementów i wydobywanie odpowiednich danych, takich jak tekst, obrazy, linki, a nawet dane strukturalne, takie jak tabele. Otwiera to świat możliwości podejmowania decyzji i automatyzacji w oparciu o dane.

Jest to szczególnie przydatne, gdy trzeba wyodrębnić dane ze stron internetowych, które nie oferują interfejsów API ani źródeł danych, na przykład w scenariuszach takich jak badanie rynku, analiza konkurencji lub zbieranie danych ze stron internetowych z często aktualizowanymi informacjami. Jednak ważne jest, aby ćwiczyć odpowiedzialne skrobanie sieci, przestrzegając warunków korzystania z witryny i względów prawnych.

Skrobanie sieci, choć skuteczne, może stanowić pewne wyzwanie. Na przykład wyodrębnianie danych z dynamicznych stron internetowych, które zmieniają się w czasie rzeczywistym, może być skomplikowane. Ponadto strony internetowe mogą wdrażać mechanizmy blokujące w celu powstrzymania skrobania lub wymagane dane mogą zostać usunięte lub zaktualizowane, co może spowodować, że wcześniej zeskrobane dane staną się nieaktualne. Dane wyjściowe ze skrobania sieci mogą być również niechlujne, co wymaga dodatkowego wysiłku w celu oczyszczenia i standaryzacji.

Kolejnym istotnym aspektem są względy prawne. Należy przestrzegać praw autorskich, zasad prywatności i przestrzegać warunków korzystania z witryny, aby uniknąć potencjalnych problemów prawnych.

Biorąc pod uwagę te komplikacje, jeśli interfejs API witryny jest dostępny, często jest to preferowany wybór. Interfejsy API zapewniają bardziej ustrukturyzowany, niezawodny i bezpieczniejszy sposób uzyskiwania dostępu do danych. Korzystając z interfejsów API, możesz ominąć wiele problemów związanych ze skrobaniem sieci, zwiększając efektywność ekstrakcji danych. Wymeldować sięTen artykułodkryć więcej.

Jak zeskrobać tekst z bloga KNIME

W tym poście na blogu chcemy przeprowadzić Cię przez naszeOd linków do danychprzepływ pracy, który automatycznie pobiera dane tekstowe z artykułów o data science zBlog KNIME. Będziemy używaćOdzyskiwanie stron internetowychwęzeł (częśćRozszerzenie klienta KNIME REST).

Pobierz przykładowy przepływ pracyOd linków do danychza darmo z KNIME Community Hub.

Zaimportuj dane

Naszym punktem wyjścia danych w tym przepływie pracy jest arkusz programu Excel, w którym znajdują się linki do wielu postów na blogu KNIME Blog.

KNIME oferuje różne węzły do ​​odczytu plików. Ponieważ mamy plik .xlsx, używamyCzytnik Excelanode, aby zacząć. Port wyjściowy węzła zwraca linki do 351 wpisów na blogu.

(Video) The KNIME Web Portal

Przetwórz dane

Ponieważ planujemy później pobierać informacje ze stron internetowych, przydatne będzie dodanie plikuhttps://protokół do naszych łączy, aby przekształcić je w strony internetowe, do których można uzyskać dostęp i po których można się poruszać. Można to łatwo osiągnąć za pomocąManipulacja strunamiwęzeł. Konfigurując go, po prostu używamydołączyć()wyrażenie, aby dołączyć dohttps://string z każdym wierszem w tabeli.

O ile to możliwe, pobranie wszystkich 351 stron internetowych może spowolnić naszą analizę. W celach demonstracyjnych tutaj filtrujemy nasze wyniki do ostatnich 20 wierszy za pomocąFiltr wierszynode, aby osiągnąć większą prędkość w naszej nadchodzącej pętli.

Po przefiltrowaniu wierszy wstępne przetwarzanie danych jest zakończone i jesteśmy gotowi do czyszczenia naszych stron internetowych. Będziemy przetwarzać jedno łącze naraz, budując pętlę fragmentów.

Użyj Chunk Loop do przetwarzania linków

Tworzymy pętlę zPoczątek pętli fragmentuIKoniec pętliwęzły i umieść naszeOdzyskiwanie stron internetowychwęzeł wewnątrz tej pętli. Pomysł z Chunk Loop polega na tym, że dzielimy początkowy zestaw danych na mniejsze części do dalszego przetwarzania. W ten sposób każda iteracja przetwarza inny fragment wierszy. Możesz elastycznie konfigurować porcję, definiując stałą liczbę wierszy na porcję lub określając stałą liczbę porcji. Zdecydowaliśmy się na pierwszy wybór i zdecydowaliśmy się na jeden rząd na porcję.

Aby zaznaczyć zakończenie tej pętli i zebrać wyniki pośrednie, używamyKoniec pętlinode, który łączy wszystkie przychodzące tabele w wierszach.

Przeszukuj sieć za pomocą narzędzia Webpage Retriever

Węzeł Webpage Retriever uzyskuje strony internetowe, wysyłając żądania HTTP GET i analizuje żądane strony internetowe HTML za pomocą ukrytej biblioteki Java jsoup. Przeanalizowany kod HTML jest czyszczony przez usunięcie komentarzy i opcjonalnie zastąpienie względnych adresów URL adresami bezwzględnymi.

Karta „Ustawienia ogólne” w węźle Webpage Retriever jest istotnym elementem tego przepływu pracy zgarniania stron internetowych, zapewniając solidną kontrolę nad procesem.

Masz możliwość wprowadzenia stałego adresu URL (określonego ręcznie) lub zestawu adresów URL z opcjonalnej tabeli wejściowej. W naszym przykładzie wybraliśmy to drugie. Zasadniczo każdy adres URL generuje żądanie, a wynik każdego żądania jest zwracany w tabeli wyjściowej.

Węzeł Webpage Retriever zawiera opcje regulujące tempo i czas żądań serwera za pomocą parametrów Delay, Concurrency i Timeout, aby zapewnić wydajne pobieranie danych bez przeciążania serwera.

Opóźnieniepozwala na ustawienie określonego interwału między kolejnymi żądaniami, mierzonego w milisekundach. Opóźnienie jest szczególnie przydatne w przypadku witryn internetowych, które mają ścisłe ograniczenia szybkości. Wprowadzając opóźnienie między żądaniami, upewniasz się, że nie przeciążasz serwera, zmniejszając ryzyko zablokowania.

(Video) First Steps into KNIME Analytics Platforms for Excel Users

Konkurencjakontroluje liczbę jednoczesnych żądań, które mogą być wysyłane do serwisu. Wyższa wartość współbieżności oznacza, że ​​jednocześnie wysyłanych jest więcej żądań, co przyspiesza proces zgarniania. Należy jednak pamiętać, że bardzo wysoka współbieżność może potencjalnie przeciążyć serwer lub uruchomić środki antybotowe, dlatego ważne jest znalezienie równowagi.

Koniec czasuustawia limit czasu, przez jaki węzeł pobierający będzie czekał na odpowiedź z serwera, zanim się podda, tym razem w sekundach. Jeśli masz do czynienia z wolnymi serwerami lub sieciami, zwiększenie limitu czasu może zapobiec niepotrzebnym awariom żądań. Jednak bardzo długi limit czasu może sprawić, że proces pobierania będzie nieefektywny, jeśli serwer jest stale wolny lub nie odpowiada.

Zakładka „Ustawienia ogólne” oferuje również szereg opcji konfiguracji wyjść. Zapewnia różne opcje wyprowadzania danych w formacie XML, nazywania kolumny wyjściowej i zastępowania względnych adresów URL adresami bezwzględnymi.

Ostatecznym ustawieniem wyjściowym jest możliwość wyodrębnienia plików cookies ze strony internetowej. Pliki cookie to małe fragmenty danych przechowywane przez witrynę internetową w przeglądarce użytkownika w celu zapamiętania informacji na ich temat. Jeśli chodzi o skrobanie stron internetowych, wyodrębnianie plików cookie może dostarczyć znaczących informacji, takich jak zrozumienie mechanizmów śledzenia użytkowników w witrynie.

Podobnie jak inne węzły w KNIME REST Client Extension, Webpage Retriever ma również zakładkę „Obsługa błędów”. Ta karta oferuje możliwości zarządzania różnymi błędami połączeń i HTTP. W przypadku problemów z połączeniem, takich jak przekroczenie limitu czasu i błędy certyfikatu, węzeł zapewnia mechanizmy skutecznego wykrywania i obsługi tych błędów.

W przypadku błędów po stronie serwera, oznaczonych jako HTTP 5XX, węzeł zawiera protokoły obsługi błędów do zgłaszania tych błędów. Podobnie w przypadku błędów po stronie klienta, sklasyfikowanych jako HTTP 4XX, węzeł jest w stanie rozpoznać te błędy.

Dodatkową funkcją dostępną w ramach tej zakładki jest możliwość dodania do wyjścia dodatkowej kolumny, dedykowanej raportowaniu błędów. W tej kolumnie będzie wyświetlana przyczyna wszelkich błędów, które wystąpiły podczas wykonywania.

Te funkcje obsługi błędów mogą spowodować niepowodzenie wykonania węzła lub wygenerować brakującą wartość, zgodnie z wybranymi ustawieniami. To elastyczne podejście pozwala użytkownikom dostosować zachowanie węzła w różnych warunkach błędów.

Zakładka „Obsługa błędów” może jednak nie obejmować wszystkich potencjalnych wyjątków lub błędów, które mogą wystąpić podczas wykonywania przepływu pracy.

W tym miejscu do gry wchodzi implementacja węzłów Try and Catch Error. Wewnątrz pętli Chunk mamyPróbowaćIBłąd złapaniawęzły do ​​ręcznej kontroli błędów wraz z węzłem Webpage Retriever do przeglądania stron internetowych. Przyjrzyjmy się funkcjonalności tych węzłów.

(Video) Jak analizować kampanie Google za setki tysięcy złotych 💰💰💰 | Wywiad z Michałem Michalikiem

Węzły Try and Catch Error umożliwiają programistom przepływów pracy obsługę wyjątków i błędów w bardziej szczegółowy i dostosowywalny sposób. Węzeł Try próbuje wykonać węzeł lub serię węzłów, a jeśli wystąpi błąd lub wyjątek, węzeł Catch przechwytuje ten błąd i przekazuje informacje o nim.

Węzeł Try (porty danych) wyznacza początek bloku try-catch w celu uwzględnienia wszelkich potencjalnych błędów. Po wysłaniu adresu URL do Webpage Retriever, górny port wejściowy węzła Catch Errors (Data Ports) po prostu przekazuje dane wejściowe wykonania, jeśli wykonanie zakończyło się pomyślnie.

Jeżeli wykonanie na gałęzi górnej nie powiedzie się (a pasujący węzeł try został podłączony przed węzłem powodującym awarię), to wejście z portu dolnego zostanie przekazane dalej, a port wyjściowy zmiennej przepływu będzie zawierał informacje związane ze zidentyfikowanym błędem poprzez wybranie opcji „Zawsze wypełniaj zmienną błędu” w konfiguracjach węzła Catch Errors.

Używając węzła Variable to Table Row, możemy następnie wyodrębnić błędy do tabeli i zapisać je przy użyciu jednego z wielu węzłów zapisujących (np. węzła Excel Writer) do celów rejestrowania.

Wreszcie, po zebraniu wszystkich informacji z przetworzonych linków i usunięciu brakujących wierszy za pomocą węzła Filtr wierszy, jesteśmy gotowi do wydobycia znaczenia z danych.

Analizuj i wizualizuj wyniki

W komponencie „Static Dashboard” budujemy dwa równoległe branche.

W pierwszej gałęzi używamyPróbkowanie wierszynode, aby wyodrębnić próbkę 3 stron internetowych w celu sprawdzenia poprawności. Następnie zatrudniamy tzwWidok kafelkowynode, aby interaktywnie wchodzić w interakcję z tekstem, wyświetlając każdy wiersz jako kafelek.

W drugiej gałęzi wykorzystujemy węzeł String Manipulation do liczenia wystąpień słowa „KNIME” w tekście. Wizualizujemy tę liczbę za pomocąHistogramnode i uzyskaj dostęp do statystyk opisowych, takich jak wartości minimalne, maksymalne i średnie, za pomocą narzędziaStatystykawęzeł. Dzięki liczbie wystąpień interaktywny widok węzła Histogram pokazuje, ile razy słowo „KNIME” występuje w różnych pojemnikach.

Węzeł Statistics oferuje widok statystyk i 3 różne wyniki tabeli zawierające statystyki, histogram nominalny i zdarzenia. Na przykład słowo „KNIME” pojawia się w postach na blogu średnio 18,4 razy. Najmniej razy wystąpiło 9, a najwięcej razy 32.

(Video) Podcast: Pogromcy Pie Chartów - Narzędzia ETL: Extract. Transform. Load. – Episode 3

Techniki web scrapingu dostępne dla każdego

Skorzystaj z tego przepływu pracy, aby uzyskać niezbędne narzędzia i techniki do wyodrębniania istotnych informacji ze stron internetowych i przedstawiania swoich ustaleń w prostych, ale atrakcyjnych wizualizacjach. Wykorzystując niskokodową/teraz kodową platformę KNIME Analytics, proces zautomatyzowanej ekstrakcji i wizualizacji danych staje się dostępny dla wszystkich.

Dowiedz się więcej o zautomatyzowanym gromadzeniu i ekstrakcji danych w kursie L4 dotyczącym wyodrębniania i wizualizacji danych w niskim kodzie

Wyszukaj kursy

(Video) 121 Spotkanie Wrocław JUG – DL4j

Czego szukasz?

1. Program wsparcia startupów Microsoft Azure
(Hostersi)
Top Articles
Latest Posts
Article information

Author: Pres. Carey Rath

Last Updated: 17/10/2023

Views: 5958

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Pres. Carey Rath

Birthday: 1997-03-06

Address: 14955 Ledner Trail, East Rodrickfort, NE 85127-8369

Phone: +18682428114917

Job: National Technology Representative

Hobby: Sand art, Drama, Web surfing, Cycling, Brazilian jiu-jitsu, Leather crafting, Creative writing

Introduction: My name is Pres. Carey Rath, I am a faithful, funny, vast, joyous, lively, brave, glamorous person who loves writing and wants to share my knowledge and understanding with you.