PROJECT

Websites scrapen met configureerbare Python-automatisering

Ontwikkeling van maatwerksoftware, Websitedata scrapen, Configureerbare Python-automatisering, Gestructureerde CSV- en JSON-export, Rendering van JavaScript-pagina's, Terugkerende scraper-uitvoeringen, Levering via database en API

  • Branche: Onderzoeksdiensten
  • Duitsland Locatie: Duitsland
  • Doorlooptijd: 10 weken
  • Technologieën: Python, JavaScript / TypeScript
3 maanden

Deze klant besteedt tijd aan het verzamelen van product-, aanbod- en contactgegevens van openbare websites. Handmatige of ad-hocverzameling maakt herhaalbaar onderzoek moeilijker. De software accepteert doel-URL's of URL-patronen, selectors en paginaregels. Vervolgens levert ze gestructureerde records in CSV, JSON of Excel. Zo beschikt de onderzoeksorganisatie over één configureerbare tool voor terugkerende extractie van websitedata, ook van pagina's waarvoor browsergebaseerde rendering nodig is.

Samenvatting

Probleem

De onderzoeksorganisatie besteedt tijd aan het vervangen van handmatige of ad-hocverzameling van websitedata door herhaalbare extractie.

Oplossing

De oplossing werd een configureerbare scraper die paginaregels volgt, dynamische content verwerkt en gestructureerde records exporteert.

Resultaat

De software is ontwikkeld om handmatige verzameling en inconsistente extractie te verminderen.

Klantverhaal

De klant is een onderzoeksorganisatie uit Duitsland. Voor onderzoekswerk verzamelt de organisatie product-, aanbod- en contactgegevens van openbare websites.

Handmatige en ad-hocverzameling kost het team tijd, vooral wanneer doelwebsites paginering, veranderende paginastructuren en dynamische tabellen gebruiken.

De vraag was eenvoudig: accepteer doel-URL's of URL-patronen, configureerbare selectors of configuratiebestanden, en lever geselecteerde websitecontent als gestructureerde records.

De oplossing is opgebouwd rond configureerbare veldregels, crawlen over meerdere pagina's en browsergebaseerde rendering. Geplande uitvoeringen en duidelijke logs ondersteunen herhaalbare verzameling.

De klant vroeg om

  1. URL's, URL-patronen, selectors, XPath's of configuratiebestanden accepteren
  2. Geselecteerde content extraheren naar gestructureerde records
  3. Paginering over pagina's en websites volgen
  4. JavaScript-pagina's, dynamische tabellen en lazy loading verwerken

Waarom kant-en-klare software niet voldeed

Kant-en-klare software voor data-extractie ondersteunt veel brontypen, terwijl beheerde scrapingdiensten zich richten op API's, browserinfrastructuur en proxyservices. Deze klant had projectspecifieke velden, selectors en pagineringsregels nodig. De oplossing moest ook lokaal kunnen draaien en documentatie en vastgelegde uitvoervereisten bevatten.

Projectoverzicht

De oplossing is ontworpen rond een configuratiescherm voor de scraper, waarin het onderzoeksteam doel-URL's, velden en selectors instelt. Regels voor paginering en uitvoerformaten zijn ook beschikbaar.

Om verschillende paginastructuren te verwerken, gebruikt de scraper configureerbare extractieregels voor velden, zichtbare tekst en tabellen. De scraper doorloopt gekoppelde pagina's en volgt waar nodig de paginering.

Voor JavaScript-pagina's, dynamische tabellen en lazy-loaded content is browsergebaseerde rendering beschikbaar. Statische pagina's kunnen in plaats daarvan directe HTTP-verzoeken en HTML-parsing gebruiken.

De oplossing is ook ingericht voor herhaalbare uitvoering. Ze draait vanaf de opdrachtregel of een lokale machine, ondersteunt planning en registreert fouten en nieuwe pogingen.

Verzamelde records kunnen daardoor naar CSV, JSON of Excel worden geëxporteerd. PostgreSQL, een lichtgewicht REST JSON-endpoint en projectdocumentatie ondersteunen verder gebruik door het klantteam.

Geleverde kernfuncties

  • Configureerbare doel-URL's en URL-patronen
  • Selector- en XPath-editor voor velden
  • Crawlen over meerdere pagina's en paginering
  • Rendering van JavaScript en lazy-loaded content
  • CSV-, JSON- en Excel-export
  • Snelheidslimieten, vertragingen, nieuwe pogingen en user-agentinstellingen
  • Uitvoergeschiedenis en scrapinglogs
  • Levering via PostgreSQL of REST JSON

Kan worden toegevoegd

+ Controles voor naleving van robots.txt + Cloudplanning + Data-archivering + Projectspecifieke documentatie + Aanvullende databasemappings

Wie kan deze oplossing nog meer gebruiken

Deze bedrijven hebben een vergelijkbare taak. Dezelfde oplossing kan worden aangepast voor het verzamelen van openbare websitedata.

Een marktonderzoeksbureau

Taak Het verzamelt product-, markt- en contactgegevens van openbare websites.
Hoe de oplossing helpt De oplossing helpt bij het toepassen van herhaalbare extractieregels en het exporteren van gestructureerde onderzoeksrecords.

Een data-analyseteam

Taak Het verzamelt aanbiedingen, tabellen en geselecteerde content van openbare websites.
Hoe de oplossing helpt De oplossing helpt bij het volgen van paginering, het renderen van dynamische pagina's en het leveren van records aan bestanden of databases.

Een onderzoeksadviesbureau

Taak Het archiveert of analyseert zichtbare tekst en gestructureerde content van openbare webpagina's.
Hoe de oplossing helpt De oplossing helpt bij het plannen van uitvoeringen, controleren van fouten en bewaren van gegenereerde bestanden met uitvoerlogs.

Technologiestack

Python

Automatiseringstaal

Python voert de configureerbare scraper, extractieregels, gegevensverwerking en exports uit.

JavaScript / TypeScript

Taal voor browserautomatisering

JavaScript of TypeScript ondersteunt browserautomatisering wanneer browsergebaseerde extractie wordt gebruikt.

Requests

HTML-pagina's opvragen

Requests (een Python-bibliotheek voor het versturen van webverzoeken) haalt pagina's op voor directe extractie.

BeautifulSoup

Pagina-HTML parsen

BeautifulSoup (een Python-bibliotheek voor het lezen van HTML) vindt geselecteerde velden en zichtbare content in de paginamarkup.

Scrapy

Meerdere pagina's crawlen

Scrapy (een Python-framework voor webcrawling) volgt gekoppelde pagina's en ondersteunt extractie over meerdere pagina's.

Playwright

Browserpagina's renderen

Playwright is een high-level API voor het automatiseren van webbrowsers tijdens browsergebaseerde extractie.

Pandas

Geëxtraheerde data verwerken

Pandas ordent geëxtraheerde records vóór export of levering.

openpyxl

Excel-bestanden schrijven

openpyxl (een Python-bibliotheek voor het lezen en schrijven van Excel-bestanden) ondersteunt XLSX-uitvoer.

CSV

Tabelrecords exporteren

CSV slaat geëxtraheerde records op in een eenvoudig tabelbestand.

JSON

Gestructureerde records exporteren

JSON slaat geëxtraheerde velden op als gestructureerde records voor bestanden of API's.

Integraties

PostgreSQL

De scraper schrijft verzamelde records naar PostgreSQL wanneer levering aan een database nodig is.

REST JSON endpoint

De oplossing stelt verzamelde records beschikbaar via een lichtgewicht REST JSON-endpoint wanneer daarom wordt gevraagd.

Excel

De oplossing wisselt geëxtraheerde records uit via XLSX-bestanden.

Command line and local scheduling

De scraper draait vanaf de opdrachtregel of een lokale machine met cron of Windows Taakplanner.

Het resultaat

Extractieregels instellen voor elke website

Het configuratiescherm houdt doelwebsites, velden en selectors bij elkaar. Ook instellingen voor paginering en dynamische content zijn beschikbaar.

Zo heeft het onderzoeksteam een duidelijke plek om vast te leggen wat de scraper vóór een uitvoering verzamelt.

Zo werkt het

  1. De configuratie slaat website-URL's, vereiste velden en selectors of XPath's op.
  2. De scraper past veldregels toe op geselecteerde pagina-inhoud.
  3. Modules voor paginering en dynamische content bereiden de uitvoering voor op gekoppelde pagina's en browsergerenderde content.
  • Doel-URL's kunnen afzonderlijke adressen of URL-patronen zijn.
  • Uitvoer omvat CSV, JSON of Excel.
Let op: Snelheidslimieten, vertragingen, user-agentinstellingen, nieuwe pogingen en controles voor naleving van robots.txt ondersteunen verantwoorde verzameling.
Scraperconfiguratie

Scraperconfiguratie

Functies op dit scherm
Geselecteerde velden extraheren Paginering verwerken Dynamische content renderen

Gestructureerde websiterecords bekijken

De resultatentabel toont geëxtraheerde velden, zichtbare tekst en tabellen als gestructureerde records.

CSV-, JSON- en Excel-export houdt de verzamelde data klaar voor onderzoeksbestanden en verdere analyse.

Zo werkt het

  1. De extractiemodule maakt records van geselecteerde velden, zichtbare tekst, tabellen of aanbiedingen.
  2. De resultatentabel toont geëxtraheerde velden en het aantal records.
  3. De exportmodule maakt CSV-, JSON- of XLSX-bestanden.
  • JSON is geschikt voor gestructureerde uitwisseling.
  • Excel is beschikbaar wanneer de extractiescope dit vereist.
Geëxtraheerde records en export

Geëxtraheerde records en export

Functies op dit scherm
Gestructureerde data extraheren Data naar CSV of JSON exporteren

Uitvoeringen volgen en fouten onderzoeken

De uitvoergeschiedenis toont doelwebsites, tijdstippen en status. Ook fouten, nieuwe pogingen en paden naar gegenereerde bestanden worden geregistreerd.

Logs geven het team een praktische manier om scraperactiviteit te controleren wanneer een pagina verandert of een uitvoering aandacht nodig heeft.

Zo werkt het

  1. De scraper registreert tijdstippen, doelwebsites en de status geslaagd of mislukt.
  2. De logviewer toont foutmeldingen en informatie over nieuwe pogingen.
  3. Links naar gegenereerde bestanden verbinden elke uitvoering met de bijbehorende CSV-, JSON- of logpaden.
  • De uitvoergeschiedenis registreert terugkerende verzamelactiviteiten.
  • Foutmeldingen tonen problemen die tijdens een uitvoering zijn geregistreerd.
Uitvoergeschiedenis en scraperlogs

Uitvoergeschiedenis en scraperlogs

Functies op dit scherm
Scrapingactiviteit loggen

Records naar een database of API sturen

Het leveringsscherm bereidt verzamelde records voor gebruik in een database of API, in plaats van ze alleen in exportbestanden te bewaren.

Mapping van velden naar schema's en een voorbeeldweergave van de JSON-payload helpen geëxtraheerde data af te stemmen op de structuur van de bestemming.

Zo werkt het

  1. De bestemmingsmodule slaat database-instellingen of bestemmingsconfiguratie op.
  2. De mappingmodule koppelt geëxtraheerde velden aan het schema van de doeltabel.
  3. De integratiemodule registreert JSON volgens het schema, databaserecords en uitvoerlogs.
  • De oplossing ondersteunt levering aan PostgreSQL wanneer dat nodig is.
  • Voor gevraagde integraties is een lichtgewicht REST JSON-endpoint beschikbaar.
Levering via database of API

Levering via database of API

Wat de oplossing biedt

Met deze oplossing kan de onderzoeksorganisatie:

  • Extractieregels voor elke doelwebsite instellen
  • Geselecteerde content van gepagineerde pagina's verzamelen
  • Browsergerenderde en lazy-loaded content verwerken
  • Gestructureerde records naar CSV, JSON of Excel exporteren
  • Fouten, nieuwe pogingen en gegenereerde bestanden controleren
  • Verzamelde records naar een database of API sturen

Kunnen kant-en-klare systemen dit werk doen?

Vóór het ontwerp werd de taak vergeleken met kant-en-klare producten op basis van hun eigen beschrijvingen.

Wat de klant nodig heeft Software voor data-extractie Data Extraction Webscraping-API's Oxylabs, Zyte, Scrapfly No-code scrapingtools Octoparse Maatwerkoplossing
URL's en extractieregels accepteren
Geselecteerde websitedata extraheren
Paginering over pagina's volgen
Dynamische browsercontent verwerken gedeeltelijk
Past bij de eigen regels van de klant: stappen, rollen, rapporten — — —
Alle stappen op één plek —
Geen handmatige stappen tussen programma's gedeeltelijk gedeeltelijk

Op basis van de openbare beschrijvingen van de producten en hun categorie.

De belangrijkste onderdelen van de taak zijn aanwezig in data-extractiesoftware, webscraping-API's en no-code scrapingtools. Een kant-en-klaar product volstaat wanneer slechts één onderdeel van de taak nodig is.

Deze klant had eigen software nodig omdat extractieregels, lokale werking, documentatie, uitvoerformaten, logs en bestemmingsvereisten op één plek moesten aansluiten op het onderzoekswerk. Kant-en-klare opties verschillen bovendien in de manier waarop ze handmatige stappen tussen programma's verwerken.

Uiteindelijk

Uiteindelijk is de oplossing gemaakt om handmatige verzameling uit de route van openbare websites naar gestructureerde onderzoeksdata te halen.

FAQ

Overweegt u een vergelijkbaar systeem te bouwen? Lees hieronder de antwoorden en ontdek hoe configureerbare scraping, exports, browserrendering en levering in een onderzoeksworkflow passen.