Podsumowanie
Organizacja badawcza poświęca czas na zastępowanie ręcznego lub doraźnego zbierania danych z witryn powtarzalnym pobieraniem.
Rozwiązanie stało się konfigurowalnym scraperem, który stosuje reguły stron, obsługuje dynamiczne treści i eksportuje uporządkowane rekordy.
Oprogramowanie ma ograniczyć ręczne zbieranie danych i niespójne pobieranie informacji.
Historia klienta
Klientem jest organizacja badawcza z Niemiec. Na potrzeby badań zbiera dane o produktach, ofertach i kontaktach z publicznie dostępnych stron internetowych.
Ręczne i doraźne zbieranie danych pochłania czas zespołu, szczególnie gdy docelowe witryny korzystają z paginacji, zmieniających się struktur stron i dynamicznych tabel.
Potrzeba była prosta: przyjmować docelowe adresy URL lub ich wzorce, konfigurowalne selektory albo pliki konfiguracyjne oraz zwracać wybraną zawartość stron jako uporządkowane rekordy.
Rozwiązanie oparto na konfigurowalnych regułach pól, przeszukiwaniu wielu stron i renderowaniu w przeglądarce. Zaplanowane uruchomienia i czytelne logi wspierają powtarzalne zbieranie danych.
Klient potrzebował
- Przyjmowania adresów URL, wzorców adresów, selektorów, XPath lub plików konfiguracyjnych
- Pobierania wybranej zawartości do uporządkowanych rekordów
- Obsługi paginacji między stronami i witrynami
- Obsługi stron JavaScript, dynamicznych tabel i leniwego ładowania
Dlaczego gotowe oprogramowanie nie pasowało
Gotowe oprogramowanie do pobierania danych obsługuje wiele typów źródeł, a zarządzane usługi scrapowania koncentrują się na API, infrastrukturze przeglądarkowej i usługach proxy. Ten klient potrzebował własnych pól, selektorów i reguł paginacji. Rozwiązanie musiało również działać lokalnie, mieć dokumentację i spełniać określone wymagania dotyczące danych wyjściowych.
Opis projektu
Rozwiązanie zaprojektowano wokół ekranu konfiguracji scrapera, na którym zespół badawczy definiuje docelowe adresy URL, pola i selektory. Dostępne są również reguły paginacji i formaty wyjściowe.
Aby obsługiwać różne struktury stron, scraper korzysta z konfigurowalnych reguł pobierania pól, widocznego tekstu i tabel. Przeszukuje powiązane strony i stosuje paginację, gdy jest wymagana.
Renderowanie w przeglądarce zapewniono dla stron JavaScript, dynamicznych tabel i treści ładowanych leniwie. W przypadku stron statycznych można zamiast tego użyć bezpośrednich żądań HTTP i analizy HTML.
Rozwiązanie przygotowano również do powtarzalnego działania. Uruchamia się z wiersza poleceń lub na lokalnym komputerze, obsługuje harmonogramy oraz rejestruje błędy i ponowne próby.
Zebrane rekordy można eksportować do CSV, JSON lub Excela. PostgreSQL, lekki endpoint REST JSON i dokumentacja projektu wspierają dalsze wykorzystanie przez zespół klienta.
Dostarczone najważniejsze funkcje
- Konfigurowalne docelowe adresy URL i ich wzorce
- Edytor selektorów pól i XPath
- Przeszukiwanie wielu stron i paginacja
- Renderowanie JavaScript i treści ładowanych leniwie
- Eksport do CSV, JSON i Excela
- Limity zapytań, opóźnienia, ponowienia i ustawienia user-agent
- Historia uruchomień i logi scrapowania
- Dostarczanie danych do PostgreSQL lub REST JSON