PROJEKT

Scrapování webů pomocí konfigurovatelné automatizace v Pythonu

Vývoj zakázkového softwaru, Scrapování dat z webů, Konfigurovatelná automatizace v Pythonu, Strukturovaný export CSV a JSON, Vykreslování stránek v JavaScriptu, Opakované spouštění scraperu, Předávání dat do databáze a API

  • Obor: Výzkumné služby
  • Německo Lokalita: Německo
  • Doba dodání: 10 týdnů
  • Technologie: Python, JavaScript / TypeScript
3 měsíců

Tento klient tráví čas shromažďováním produktových, katalogových a kontaktních údajů z veřejných webů. Ruční nebo nahodilý sběr komplikuje opakovaný výzkum. Software přijímá cílová URL nebo jejich vzory, selektory a pravidla stránek. Poté vrací strukturované záznamy ve formátech CSV, JSON nebo Excel. Výzkumné organizaci poskytuje jeden konfigurovatelný nástroj pro opakovanou extrakci dat z webů, včetně stránek vyžadujících vykreslování v prohlížeči.

Shrnutí

Problém

Výzkumná organizace tráví čas nahrazováním ručního nebo nahodilého sběru webových dat opakovatelnou extrakcí.

Řešení

Řešením se stal konfigurovatelný scraper, který dodržuje pravidla stránek, zpracovává dynamický obsah a exportuje strukturované záznamy.

Výsledek

Software je navržen tak, aby omezil ruční sběr a nekonzistentní extrakci.

Příběh klienta

Klientem je výzkumná organizace z Německa. Pro výzkumné účely shromažďuje produktová, katalogová a kontaktní data z veřejných webů.

Ruční a nahodilý sběr tým stojí čas, zejména když cílové weby používají stránkování, měnící se struktury stránek a dynamické tabulky.

Požadavek byl jednoduchý: přijímat cílová URL nebo jejich vzory, konfigurovatelné selektory či konfigurační soubory a vracet vybraný obsah webů jako strukturované záznamy.

Řešení bylo postaveno na konfigurovatelných pravidlech polí, procházení více stránek a vykreslování v prohlížeči. Plánovaná spuštění a přehledné protokoly podpořily opakovatelný sběr.

Klient požadoval

  1. Přijímat URL, vzory URL, selektory, XPath nebo konfigurační soubory
  2. Extrahovat vybraný obsah do strukturovaných záznamů
  3. Následovat stránkování napříč stránkami a weby
  4. Zpracovávat stránky v JavaScriptu, dynamické tabulky a odložené načítání

Proč hotový software nevyhovoval

Hotový software pro extrakci dat pokrývá mnoho typů zdrojů, zatímco spravované scrapingové služby se zaměřují na API, infrastrukturu pro prohlížeče a proxy služby. Tento klient potřeboval pole, selektory a pravidla stránkování specifická pro projekt. Řešení muselo podporovat také lokální provoz, dokumentaci a definované požadavky na výstup.

Přehled projektu

Řešení bylo navrženo kolem konfigurační obrazovky scraperu, kde výzkumný tým definuje cílová URL, pole a selektory. K dispozici jsou také pravidla stránkování a formáty výstupu.

Pro zpracování různých struktur stránek používá scraper konfigurovatelná pravidla extrakce polí, viditelného textu a tabulek. Prochází propojené stránky a podle potřeby následuje stránkování.

Pro stránky v JavaScriptu, dynamické tabulky a obsah načítaný odloženě bylo zajištěno vykreslování v prohlížeči. Statické stránky lze místo toho zpracovat přímými HTTP požadavky a parsováním HTML.

Řešení bylo navrženo také pro opakovaný provoz. Spouští se z příkazového řádku nebo lokálního počítače, podporuje plánování a zaznamenává chyby i opakované pokusy.

Shromážděné záznamy lze exportovat do CSV, JSON nebo Excelu. PostgreSQL, odlehčený REST JSON endpoint a projektová dokumentace podporují další využití týmem klienta.

Dodané klíčové funkce

  • Konfigurovatelná cílová URL a jejich vzory
  • Editor selektorů polí a XPath
  • Procházení více stránek a stránkování
  • Vykreslování obsahu v JavaScriptu a odloženě načítaného obsahu
  • Export do CSV, JSON a Excelu
  • Limity rychlosti, prodlevy, opakované pokusy a nastavení user-agentu
  • Historie spuštění a scrapingové protokoly
  • Předávání dat do PostgreSQL nebo REST JSON

Lze přidat

+ Kontroly souladu s robots.txt + Cloudové plánování + Archivace dat + Projektová dokumentace na míru + Další mapování databází

Kdo další může toto řešení využít

Tyto firmy řeší podobný úkol a stejné řešení lze přizpůsobit jejich sběru dat z veřejných webů.

Agentura pro průzkum trhu

Úkol Shromažďuje produktová, tržní a kontaktní data z veřejných webů.
Jak řešení pomáhá Řešení jí pomáhá používat opakovatelná pravidla extrakce a exportovat strukturované výzkumné záznamy.

Tým pro analýzu dat

Úkol Sbírá katalogy, tabulky a vybraný obsah z veřejných webů.
Jak řešení pomáhá Řešení jí pomáhá následovat stránkování, vykreslovat dynamické stránky a předávat záznamy do souborů nebo databází.

Výzkumná poradenská firma

Úkol Archivuje nebo analyzuje viditelný text a strukturovaný obsah veřejných webových stránek.
Jak řešení pomáhá Řešení jí pomáhá plánovat spuštění, kontrolovat chyby a uchovávat vygenerované soubory spolu s protokoly.

Technologický stack

Python

Jazyk automatizace

Python spouští konfigurovatelný scraper, pravidla extrakce, zpracování dat a exporty.

JavaScript / TypeScript

Jazyk automatizace prohlížeče

JavaScript nebo TypeScript podporuje automatizaci prohlížeče tam, kde se používá extrakce v prohlížeči.

Requests

Načítání HTML stránek

Requests (knihovna Pythonu pro odesílání webových požadavků) načítá stránky pro přímou extrakci.

BeautifulSoup

Parsování HTML stránek

BeautifulSoup (knihovna Pythonu pro čtení HTML) vyhledává vybraná pole a viditelný obsah ve struktuře stránky.

Scrapy

Procházení více stránek

Scrapy (framework Pythonu pro procházení webu) následuje propojené stránky a podporuje extrakci z více stránek.

Playwright

Vykreslování stránek v prohlížeči

Playwright je vysokoúrovňové API pro automatizaci webových prohlížečů při extrakci v prohlížeči.

Pandas

Zpracování extrahovaných dat

Pandas organizuje extrahované záznamy před exportem nebo předáním.

openpyxl

Zápis souborů Excel

openpyxl (knihovna Pythonu pro čtení a zápis souborů Excel) podporuje výstup XLSX.

CSV

Export záznamů tabulek

CSV ukládá extrahované záznamy do jednoduchého tabulkového souboru.

JSON

Export strukturovaných záznamů

JSON ukládá extrahovaná pole jako strukturované záznamy pro soubory nebo API.

Integrace

PostgreSQL

Scraper zapisuje shromážděné záznamy do PostgreSQL, pokud je vyžadováno předávání do databáze.

REST JSON endpoint

Řešení zpřístupňuje shromážděné záznamy prostřednictvím odlehčeného REST JSON endpointu, pokud je požadován.

Excel

Řešení si vyměňuje extrahované záznamy prostřednictvím souborů XLSX.

Command line and local scheduling

Scraper se spouští z příkazového řádku nebo lokálního počítače pomocí cronu či Plánovače úloh systému Windows.

Výsledek

Nastavení pravidel extrakce pro každý web

Obrazovka konfigurace uchovává cílové weby, pole a selektory pohromadě. K dispozici jsou také nastavení stránkování a dynamického obsahu.

Výzkumný tým tak má jasné místo, kde před spuštěním určí, co má scraper shromažďovat.

Jak to funguje

  1. Konfigurace ukládá URL webů, požadovaná pole a selektory nebo XPath.
  2. Scraper aplikuje pravidla polí na vybraný obsah stránek.
  3. Moduly stránkování a dynamického obsahu připraví spuštění pro propojené stránky a obsah vykreslovaný v prohlížeči.
  • Cílové URL mohou být jednotlivé adresy nebo vzory URL.
  • Výstupy zahrnují CSV, JSON nebo Excel.
Poznámka: Limity rychlosti, prodlevy, nastavení user-agentu, opakované pokusy a kontroly souladu s robots.txt podporují odpovědný sběr dat.
Konfigurace scraperu

Konfigurace scraperu

Funkce na této obrazovce
Extrakce vybraných polí Zpracování stránkování Vykreslování dynamického obsahu

Kontrola strukturovaných záznamů z webů

Tabulka výsledků zobrazuje extrahovaná pole, viditelný text a tabulky jako strukturované záznamy.

Export do CSV, JSON a Excelu udržuje shromážděná data připravená pro výzkumné soubory a další analýzu.

Jak to funguje

  1. Modul extrakce vytváří záznamy z vybraných polí, viditelného textu, tabulek nebo katalogů.
  2. Tabulka výsledků zobrazuje extrahovaná pole a počet záznamů.
  3. Exportní modul vytváří soubory CSV, JSON nebo XLSX.
  • JSON je vhodný pro strukturovanou výměnu.
  • Excel je k dispozici tam, kde to vyžaduje rozsah extrakce.
Extrahované záznamy a export

Extrahované záznamy a export

Funkce na této obrazovce
Extrakce strukturovaných dat Export dat do CSV nebo JSON

Sledování spuštění a vyšetřování chyb

Historie spuštění zobrazuje cílové weby, časová razítka a stav. Zaznamenává také chyby, opakované pokusy a cesty k vygenerovaným souborům.

Protokoly poskytují týmu praktický způsob kontroly aktivity scraperu, když se stránka změní nebo spuštění vyžaduje pozornost.

Jak to funguje

  1. Scraper zaznamenává čas spuštění, cílové weby a stav úspěchu či selhání.
  2. Prohlížeč protokolů zobrazuje chybové zprávy a informace o opakovaných pokusech.
  3. Odkazy na vygenerované soubory propojují každé spuštění s cestami k souborům CSV, JSON nebo protokolům.
  • Historie spuštění zaznamenává opakovanou sběrnou aktivitu.
  • Chybové zprávy zobrazují problémy zaznamenané během spuštění.
Historie spuštění a protokoly scraperu

Historie spuštění a protokoly scraperu

Funkce na této obrazovce
Protokolování aktivity scraperu

Předávání záznamů do databáze nebo API

Obrazovka předávání připravuje shromážděné záznamy pro použití v databázi nebo API namísto jejich ponechání pouze v exportních souborech.

Mapování polí na schéma a náhled JSON payloadu pomáhají sladit extrahovaná data se strukturou cíle.

Jak to funguje

  1. Modul cíle ukládá nastavení databáze nebo konfiguraci cíle.
  2. Mapovací modul přiřazuje extrahovaná pole ke schématu cílové tabulky.
  3. Integrační modul zaznamenává JSON odpovídající schématu, databázové záznamy a protokoly spuštění.
  • Řešení podle potřeby podporuje předávání do PostgreSQL.
  • Pro požadované integrace je k dispozici odlehčený REST JSON endpoint.
Předávání dat do databáze nebo API

Předávání dat do databáze nebo API

Co řešení poskytuje

Díky tomuto řešení může výzkumná organizace:

  • Definovat pravidla extrakce pro každý cílový web
  • Shromažďovat vybraný obsah napříč stránkovanými stránkami
  • Zpracovávat obsah vykreslovaný v prohlížeči a načítaný odloženě
  • Exportovat strukturované záznamy do CSV, JSON nebo Excelu
  • Kontrolovat chyby, opakované pokusy a vygenerované soubory
  • Předávat shromážděné záznamy do databáze nebo API

Mohly by tento úkol zvládnout hotové systémy?

Před návrhem byl úkol porovnán s hotovými produkty podle jejich vlastních popisů.

Co klient potřebuje Software pro extrakci dat Data Extraction API pro scrapování webů Oxylabs, Zyte, Scrapfly Nástroje pro scrapování bez kódu Octoparse Zakázkové řešení
Přijímání URL a pravidel extrakce
Extrakce vybraného obsahu webů
Následování stránkování napříč stránkami
Zpracování dynamického obsahu v prohlížeči částečně
Přizpůsobení vlastním pravidlům klienta: fáze, role, reporty — — —
Všechny kroky na jednom místě —
Žádné ruční kroky mezi programy částečně částečně

Podle veřejných popisů produktů a jejich kategorie.

Hlavní části úkolu existují v softwaru pro extrakci dat, API pro scrapování webů a nástrojích pro scrapování bez kódu. Hotový produkt stačí, pokud je potřeba pouze jedna část úkolu.

Tento klient potřeboval vlastní software, protože pravidla extrakce, lokální provoz, dokumentace, formáty výstupu, protokoly a požadavky na cíle musely odpovídat výzkumné práci na jednom místě. Hotové možnosti se také liší v tom, jak zpracovávají ruční kroky mezi programy.

Nakonec

Výsledné řešení bylo navrženo tak, aby odstranilo ruční sběr z cesty mezi veřejnými weby a strukturovanými výzkumnými daty.

ČASTÉ DOTAZY

Uvažujete o vytvoření podobného systému? Níže najdete odpovědi, které ukazují, jak lze konfigurovatelné scrapování, exporty, vykreslování v prohlížeči a předávání dat začlenit do výzkumného pracovního postupu.