PROJEKT

Scrapowanie stron internetowych za pomocą konfigurowalnej automatyzacji w Pythonie

Tworzenie dedykowanego oprogramowania, Scrapowanie danych ze stron internetowych, Konfigurowalna automatyzacja w Pythonie, Strukturalny eksport CSV i JSON, Renderowanie stron JavaScript, Cykliczne uruchamianie scrapera, Dostarczanie danych do bazy i API

  • Branża: Usługi badawcze
  • Niemcy Lokalizacja: Niemcy
  • Czas realizacji: 10 tygodnie
  • Technologie: Python, JavaScript / TypeScript
3 miesięcy

Klient poświęca czas na zbieranie danych o produktach, ofertach i kontaktach z publicznie dostępnych stron internetowych. Ręczne lub doraźne zbieranie danych utrudnia powtarzalne prace badawcze. Oprogramowanie przyjmuje docelowe adresy URL lub wzorce adresów, selektory i reguły stron. Następnie zwraca uporządkowane rekordy w formacie CSV, JSON lub Excel. Organizacja badawcza otrzymuje jedno konfigurowalne narzędzie do cyklicznego pobierania danych ze stron, także tych wymagających renderowania w przeglądarce.

Podsumowanie

Problem

Organizacja badawcza poświęca czas na zastępowanie ręcznego lub doraźnego zbierania danych z witryn powtarzalnym pobieraniem.

Rozwiązanie

Rozwiązanie stało się konfigurowalnym scraperem, który stosuje reguły stron, obsługuje dynamiczne treści i eksportuje uporządkowane rekordy.

Rezultat

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ł

  1. Przyjmowania adresów URL, wzorców adresów, selektorów, XPath lub plików konfiguracyjnych
  2. Pobierania wybranej zawartości do uporządkowanych rekordów
  3. Obsługi paginacji między stronami i witrynami
  4. 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

Można dodać

+ Kontrole zgodności z robots.txt + Harmonogramowanie w chmurze + Archiwizowanie danych + Dokumentację dopasowaną do projektu + Dodatkowe mapowania baz danych

Kto jeszcze może korzystać z tego rozwiązania

Te firmy mają podobne zadania, a to samo rozwiązanie można dostosować do zbierania danych z ich publicznych witryn.

Agencja badań rynku

Zadanie Zbiera dane o produktach, rynku i kontaktach z publicznych stron internetowych.
Jak pomaga rozwiązanie Rozwiązanie pomaga stosować powtarzalne reguły pobierania i eksportować uporządkowane rekordy badawcze.

Zespół analizy danych

Zadanie Gromadzi oferty, tabele i wybraną zawartość z publicznych witryn.
Jak pomaga rozwiązanie Rozwiązanie pomaga obsługiwać paginację, renderować dynamiczne strony i dostarczać rekordy do plików lub baz danych.

Firma konsultingowa zajmująca się badaniami

Zadanie Archiwizuje lub analizuje widoczny tekst i uporządkowaną zawartość publicznych stron.
Jak pomaga rozwiązanie Rozwiązanie pomaga planować uruchomienia, analizować błędy i przechowywać wygenerowane pliki wraz z logami uruchomień.

Stos technologiczny

Python

Język automatyzacji

Python obsługuje konfigurowalny scraper, reguły pobierania, przetwarzanie danych i eksport.

JavaScript / TypeScript

Język automatyzacji przeglądarki

JavaScript lub TypeScript wspiera automatyzację przeglądarki tam, gdzie używane jest pobieranie danych w przeglądarce.

Requests

Pobieranie stron HTML

Requests (biblioteka Pythona do wysyłania żądań internetowych) pobiera strony do bezpośredniego przetwarzania.

BeautifulSoup

Analiza kodu HTML stron

BeautifulSoup (biblioteka Pythona do odczytu HTML) wyszukuje wybrane pola i widoczną zawartość w kodzie strony.

Scrapy

Przeszukiwanie wielu stron

Scrapy (framework Pythona do przeszukiwania internetu) odwiedza powiązane strony i obsługuje pobieranie z wielu stron.

Playwright

Renderowanie stron w przeglądarce

Playwright to wysokopoziomowe API do automatyzacji przeglądarek podczas pobierania danych w przeglądarce.

Pandas

Obsługa pobranych danych

Pandas porządkuje pobrane rekordy przed eksportem lub dostarczeniem.

openpyxl

Tworzenie plików Excel

openpyxl (biblioteka Pythona do odczytu i zapisu plików Excel) obsługuje format XLSX.

CSV

Eksport rekordów tabel

CSV przechowuje pobrane rekordy w prostym pliku tabelarycznym.

JSON

Eksport uporządkowanych rekordów

JSON przechowuje pobrane pola jako uporządkowane rekordy dla plików lub API.

Integracje

PostgreSQL

Scraper zapisuje zebrane rekordy w PostgreSQL, gdy wymagane jest dostarczanie danych do bazy.

REST JSON endpoint

Na żądanie rozwiązanie udostępnia zebrane rekordy przez lekki endpoint REST JSON.

Excel

Rozwiązanie wymienia pobrane rekordy za pomocą plików XLSX.

Command line and local scheduling

Scraper działa z wiersza poleceń lub lokalnego komputera, korzystając z crona albo Harmonogramu zadań systemu Windows.

Rezultat

Ustawianie reguł pobierania dla każdej witryny

Ekran konfiguracji łączy docelowe witryny, pola i selektory. Dostępne są również ustawienia paginacji i treści dynamicznych.

Dzięki temu zespół badawczy ma jedno przejrzyste miejsce do określania danych pobieranych przez scraper przed uruchomieniem.

Jak to działa

  1. Konfiguracja przechowuje adresy URL witryn, wymagane pola oraz selektory lub XPath.
  2. Scraper stosuje reguły pól do wybranej zawartości stron.
  3. Moduły paginacji i treści dynamicznych przygotowują uruchomienie do obsługi powiązanych stron i zawartości renderowanej w przeglądarce.
  • Docelowe adresy URL mogą być pojedynczymi adresami lub wzorcami.
  • Wyniki obejmują formaty CSV, JSON lub Excel.
Uwaga: Limity zapytań, opóźnienia, ustawienia user-agent, ponowienia i kontrole zgodności z robots.txt wspierają odpowiedzialne zbieranie danych.
Konfiguracja scrapera

Konfiguracja scrapera

Funkcje na tym ekranie
Pobieranie wybranych pól Obsługa paginacji Renderowanie dynamicznych treści

Przeglądanie uporządkowanych rekordów stron

Tabela wyników przedstawia pobrane pola, widoczny tekst i tabele jako uporządkowane rekordy.

Eksport do CSV, JSON i Excela utrzymuje zebrane dane w gotowej formie do plików badawczych i dalszej analizy.

Jak to działa

  1. Moduł pobierania tworzy rekordy z wybranych pól, widocznego tekstu, tabel lub ofert.
  2. Tabela wyników wyświetla pobrane pola i liczbę rekordów.
  3. Moduł eksportu tworzy pliki CSV, JSON lub XLSX.
  • JSON nadaje się do uporządkowanej wymiany danych.
  • Excel jest dostępny, gdy wymaga tego zakres pobierania.
Pobrane rekordy i eksport

Pobrane rekordy i eksport

Funkcje na tym ekranie
Pobieranie uporządkowanych danych Eksport danych do CSV lub JSON

Śledzenie uruchomień i analiza błędów

Historia uruchomień pokazuje docelowe witryny, znaczniki czasu i status. Rejestruje również błędy, ponowienia i ścieżki wygenerowanych plików.

Logi dają zespołowi praktyczny sposób analizowania aktywności scrapera, gdy strona się zmieni lub uruchomienie wymaga uwagi.

Jak to działa

  1. Scraper rejestruje znaczniki czasu uruchomień, docelowe witryny oraz status powodzenia lub błędu.
  2. Przeglądarka logów wyświetla komunikaty o błędach i informacje o ponowieniach.
  3. Linki do wygenerowanych plików łączą każde uruchomienie ze ścieżkami plików CSV, JSON lub logów.
  • Historia uruchomień rejestruje cykliczne zbieranie danych.
  • Komunikaty o błędach pokazują problemy zarejestrowane podczas uruchomienia.
Historia uruchomień i logi scrapera

Historia uruchomień i logi scrapera

Funkcje na tym ekranie
Rejestrowanie aktywności scrapera

Wysyłanie rekordów do bazy danych lub API

Ekran dostarczania danych przygotowuje zebrane rekordy do wykorzystania w bazie lub API, zamiast pozostawiać je wyłącznie w plikach eksportu.

Mapowanie pól do schematu i podgląd ładunku JSON pomagają dopasować pobrane dane do struktury docelowej.

Jak to działa

  1. Moduł docelowy przechowuje ustawienia bazy lub konfigurację miejsca docelowego.
  2. Moduł mapowania dopasowuje pobrane pola do schematu tabeli docelowej.
  3. Moduł integracji rejestruje JSON zgodny ze schematem, rekordy bazy i logi uruchomień.
  • Rozwiązanie obsługuje dostarczanie danych do PostgreSQL, gdy jest to wymagane.
  • Dla wymaganych integracji dostępny jest lekki endpoint REST JSON.
Dostarczanie danych do bazy lub API

Dostarczanie danych do bazy lub API

Co zapewnia rozwiązanie

Dzięki temu rozwiązaniu organizacja badawcza może:

  • Definiować reguły pobierania dla każdej docelowej witryny
  • Zbierać wybraną zawartość ze stron z paginacją
  • Obsługiwać treści renderowane w przeglądarce i ładowane leniwie
  • Eksportować uporządkowane rekordy do CSV, JSON lub Excela
  • Analizować błędy, ponowienia i wygenerowane pliki
  • Wysyłać zebrane rekordy do bazy danych lub API

Czy gotowe systemy mogłyby wykonać to zadanie?

Przed rozpoczęciem projektowania porównano zadanie z gotowymi produktami na podstawie ich własnych opisów.

Czego potrzebuje klient Oprogramowanie do pobierania danych Data Extraction API do web scrapingu Oxylabs, Zyte, Scrapfly Narzędzia do scrapowania bez kodowania Octoparse Dedykowane rozwiązanie
Przyjmowanie adresów URL i reguł pobierania
Pobieranie wybranej zawartości stron
Obsługa paginacji między stronami
Obsługa dynamicznej zawartości przeglądarki częściowo
Dopasowanie do własnych reguł klienta: etapów, ról i raportów — — —
Wszystkie kroki w jednym miejscu —
Brak ręcznych kroków między programami częściowo częściowo

Na podstawie publicznych opisów produktów i ich kategorii.

Najważniejsze elementy zadania występują w oprogramowaniu do pobierania danych, API do web scrapingu i narzędziach do scrapowania bez kodowania. Gotowy produkt wystarczy, gdy potrzebna jest tylko jedna część zadania.

Ten klient potrzebował własnego oprogramowania, ponieważ reguły pobierania, działanie lokalne, dokumentacja, formaty wyjściowe, logi i wymagania dotyczące miejsca docelowego musiały pasować do pracy badawczej w jednym miejscu. Gotowe opcje różnią się również sposobem obsługi ręcznych kroków między programami.

Podsumowując

Ostatecznie rozwiązanie miało usunąć ręczne zbieranie danych z procesu przechodzenia od publicznych stron internetowych do uporządkowanych danych badawczych.

FAQ

Myślisz o stworzeniu podobnego systemu? Przeczytaj poniższe odpowiedzi, aby zobaczyć, jak konfigurowalne scrapowanie, eksport, renderowanie w przeglądarce i dostarczanie danych mogą wspierać proces badawczy.