Skrobanie danych
Skrobanie danych to technika, w której program komputerowy wyodrębnia dane z danych wyjściowych czytelnych dla człowieka pochodzących z innego programu.
Opis
Zwykle przesyłanie danych między programami odbywa się przy użyciu struktur danych przystosowanych do automatycznego przetwarzania przez komputery , a nie przez ludzi. Takie formaty wymiany i protokoły mają zazwyczaj sztywną strukturę, są dobrze udokumentowane, łatwe do przeanalizowania i minimalizują niejednoznaczność. Bardzo często te transmisje w ogóle nie są czytelne dla człowieka.
Zatem kluczowym elementem, który odróżnia skrobanie danych od zwykłego parsowania , jest to, że dane wyjściowe są przeznaczone do wyświetlenia użytkownikowi końcowemu , a nie jako dane wejściowe do innego programu. Dlatego zwykle nie jest ani udokumentowany, ani ustrukturyzowany w celu wygodnego analizowania. Skrobanie danych często polega na ignorowaniu danych binarnych (zwykle obrazów lub danych multimedialnych), formatowaniu wyświetlania , zbędnych etykietach, zbędnych komentarzach i innych informacjach, które są albo nieistotne, albo utrudniają automatyczne przetwarzanie.
Skrobanie danych jest najczęściej wykonywane albo w celu połączenia ze starszym systemem , który nie ma innego mechanizmu kompatybilnego z obecnym sprzętem , albo w celu połączenia z systemem innej firmy, który nie zapewnia wygodniejszego interfejsu API . W drugim przypadku operator zewnętrznego systemu często uzna screen scraping za niepożądany z powodów takich jak zwiększone obciążenie systemu , utrata przychodów z reklam lub utrata kontroli nad treścią informacji.
Skrobanie danych jest ogólnie uważane za doraźną , nieelegancką technikę, często używaną tylko w „ostateczności”, gdy nie jest dostępny żaden inny mechanizm wymiany danych. Oprócz wyższych z programowaniem i przetwarzaniem, wyświetlacze wyjściowe przeznaczone do spożycia przez ludzi często często zmieniają strukturę. Ludzie mogą sobie z tym łatwo poradzić, ale program komputerowy zawiedzie. W zależności od jakości i zakresu obsługi błędów obecnej w komputerze, ta awaria może spowodować komunikaty o błędach, uszkodzone dane wyjściowe, a nawet awarie programu .
Warianty techniczne
Skrobanie ekranu
Chociaż użycie fizycznego „ głupiego terminala ” IBM 3270s powoli maleje, ponieważ coraz więcej aplikacji mainframe nabywa interfejsy sieciowe , niektóre aplikacje sieciowe po prostu nadal wykorzystują technikę zgarniania ekranu w celu przechwytywania starych ekranów i przesyłania danych do nowoczesnych interfejsów. .
Screen scraping jest zwykle kojarzony z programowym zbieraniem danych wizualnych ze źródła, zamiast analizowania danych, jak w przypadku web scrapingu. Pierwotnie screen scraping odnosił się do praktyki odczytywania danych tekstowych z ekranu terminala komputerowego . Na ogół odbywało się to poprzez odczytywanie pamięci terminala przez jego port pomocniczy lub przez podłączenie portu wyjściowego terminala jednego systemu komputerowego do portu wejściowego innego. Termin screen scraping jest również powszechnie używany w odniesieniu do dwukierunkowej wymiany danych. Mogą to być proste przypadki, w których program sterujący porusza się po interfejsie użytkownika, lub bardziej złożone scenariusze, w których program sterujący wprowadza dane do interfejsu przeznaczonego do użytku przez człowieka.
Jako konkretny przykład klasycznego skrobaka do ekranu rozważmy hipotetyczny system z lat 60. XX wieku — początek komputerowego przetwarzania danych . Interfejsy komputera do użytkownika z tamtej epoki były często po prostu głupimi terminalami tekstowymi , które nie były niczym więcej niż wirtualnymi dalekopisami (takie systemy są nadal używane z różnych powodów). Chęć połączenia takiego systemu z bardziej nowoczesnymi systemami jest powszechna. Solidne rozwiązanie często wymaga rzeczy, które nie są już dostępne, takich jak kod źródłowy , dokumentacja systemu , interfejsy API lub programiści z doświadczeniem w 50-letnim systemie komputerowym. W takich przypadkach jedynym możliwym rozwiązaniem może być napisanie skrobaka ekranu, który „udaje” użytkownika terminala. Skrobak ekranu może łączyć się ze starszym systemem przez Telnet , emulować naciśnięcia klawiszy potrzebne do poruszania się po starym interfejsie użytkownika, przetwarzać wyniki wyświetlania, wyodrębniać żądane dane i przekazywać je do nowoczesnego systemu. Wyrafinowana i odporna implementacja tego rodzaju, zbudowana na platformie zapewniającej nadzór i kontrolę wymaganą przez duże przedsiębiorstwo — np. kontrolę zmian, bezpieczeństwo, zarządzanie użytkownikami, ochronę danych, audyt operacyjny, równoważenie obciążenia i zarządzanie kolejkami itp. — mogłaby można powiedzieć, że jest to przykład zrobotyzowanego oprogramowania do automatyzacji procesów , zwanego RPA lub RPAAI dla samosterującego się RPA 2.0 opartego na sztucznej inteligencji .
W latach 80. dostawcy danych finansowych, tacy jak Reuters , Telerate i Quotron , wyświetlali dane w formacie 24×80 przeznaczonym dla czytelnika. Użytkownicy tych danych, w szczególności banki inwestycyjne , pisali aplikacje do przechwytywania i konwertowania tych danych znakowych na dane liczbowe w celu włączenia ich do obliczeń dla decyzji handlowych bez ponownego wprowadzania danych. Powszechnym terminem określającym tę praktykę, zwłaszcza w Wielkiej Brytanii , było niszczenie stron , ponieważ można było sobie wyobrazić, że wyniki przechodzą przez niszczarkę do dokumentów . Wewnętrznie Reuters użył terminu „logicized” dla tego procesu konwersji, uruchamiając wyrafinowany system komputerowy na VAX / VMS zwany Logicizer.
Bardziej nowoczesne techniki zgarniania ekranu obejmują przechwytywanie danych mapy bitowej z ekranu i przepuszczanie ich przez silnik OCR lub w przypadku niektórych wyspecjalizowanych automatycznych systemów testujących dopasowywanie danych mapy bitowej ekranu do oczekiwanych wyników. W przypadku GUI można to połączyć z wysyłaniem zapytań do kontrolek graficznych poprzez programowe uzyskiwanie odniesień do ich bazowych obiektów programistycznych . Sekwencja ekranów jest automatycznie przechwytywana i przekształcana w bazę danych.
Inną nowoczesną adaptacją tych technik jest użycie, zamiast sekwencji ekranów jako danych wejściowych, zestawu obrazów lub plików PDF, więc pewne techniki pokrywają się z ogólnymi technikami „skrobania dokumentów” i eksploracji raportów .
Istnieje wiele narzędzi, których można użyć do skrobania ekranu.
Skrobanie sieci
Strony internetowe są tworzone przy użyciu tekstowych języków znaczników ( HTML i XHTML ) i często zawierają mnóstwo przydatnych danych w formie tekstowej. Jednak większość stron internetowych jest przeznaczona dla użytkowników końcowych , a nie dla ułatwienia zautomatyzowanego użytkowania. Z tego powodu stworzono zestawy narzędzi do zbierania treści internetowych. Skrobak sieciowy to interfejs API lub narzędzie do wyodrębniania danych ze strony internetowej. Firmy takie jak Amazon AWS i Google udostępniają użytkownikom końcowym narzędzia, usługi i publiczne dane do skrobania stron internetowych bezpłatnie. Nowsze formy skrobania sieci obejmują słuchanie strumieni danych z serwerów sieciowych. Na przykład JSON jest powszechnie używany jako mechanizm przechowywania danych transportowych między klientem a serwerem WWW.
Ostatnio firmy opracowały systemy zbierania danych z sieci, które opierają się na wykorzystaniu technik parsowania DOM, wizji komputerowej i przetwarzania języka naturalnego w celu symulacji przetwarzania przez człowieka, które ma miejsce podczas przeglądania strony internetowej, w celu automatycznego wyodrębnienia przydatnych informacji.
Duże strony internetowe zwykle używają algorytmów obronnych, aby chronić swoje dane przed skrobakami sieciowymi i ograniczać liczbę żądań wysyłanych przez IP lub sieć IP. Spowodowało to ciągłą bitwę między twórcami stron internetowych a programistami skrobającymi.
Zgłoś wydobycie
Eksploracja raportów to wydobywanie danych z raportów komputerowych czytelnych dla człowieka. Tradycyjna ekstrakcja danych wymaga połączenia z działającym systemem źródłowym, odpowiednich standardów łączności lub interfejsu API oraz zazwyczaj złożonych zapytań. Korzystając ze standardowych opcji raportowania systemu źródłowego i kierując dane wyjściowe do zbioru buforowego zamiast do drukarki , można generować statyczne raporty odpowiednie do analizy w trybie offline poprzez eksplorację raportów. Takie podejście pozwala uniknąć intensywnego procesora w godzinach pracy, może zminimalizować koszty licencji użytkowników końcowych dla klientów ERP i może zaoferować bardzo szybkie prototypowanie i opracowywanie niestandardowych raportów. Podczas gdy zbieranie danych i przeglądanie stron internetowych obejmuje interakcję z dynamicznymi danymi wyjściowymi, eksploracja raportów obejmuje wyodrębnianie danych z plików w formacie czytelnym dla człowieka, takim jak HTML , PDF lub tekst. Można je łatwo wygenerować z niemal dowolnego systemu, przechwytując dane przesyłane do drukarki. Takie podejście może zapewnić szybką i prostą drogę do pozyskania danych bez konieczności programowania API do systemu źródłowego.
Zobacz też
- Porównanie agregatorów pasz
- Czyszczenie danych
- Bezpowrotnie zniszczenie lub zmiana danych
- Importer (informatyka)
- Ekstrakcja informacji
- Otwórz dane
- Mashup (hybryda aplikacji internetowej)
- Metadane
- Skrobanie sieci
- Skrobanie w wyszukiwarce
Dalsza lektura
- Hemenway, Kevin i Calishain, Tara. Pajęcze hacki . Cambridge, Massachusetts: O'Reilly, 2003. ISBN 0-596-00577-6 .