PROJEKT

Webscraping med konfigurerbar Python-automatisering

Skræddersyet softwareudvikling, Websitedata-scraping, Konfigurerbar Python-automatisering, Struktureret CSV- og JSON-eksport, Rendering af JavaScript-sider, Gentagne scraper-kørsler, Levering til database og API

  • Branche: Researchtjenester
  • Tyskland Placering: Tyskland
  • Leveringstid: 10 uger
  • Teknologier: Python, JavaScript / TypeScript
3 måneder

Denne kunde bruger tid på at indsamle produkt-, annonce- og kontaktdata fra offentlige websites. Manuel eller tilfældig indsamling gør gentagelig research vanskeligere. Softwaren modtager mål-URL'er eller URL-mønstre, selektorer og sideregler. Derefter returnerer den strukturerede poster i CSV, JSON eller Excel. Den giver en researchorganisation ét konfigurerbart værktøj til gentagen udtrækning af websitedata, også fra sider der kræver browserbaseret rendering.

Opsummering

Problem

Researchorganisationen bruger tid på at erstatte manuel eller tilfældig indsamling fra websites med gentagelig dataudtrækning.

Løsning

Løsningen blev en konfigurerbar scraper, der følger sideregler, håndterer dynamisk indhold og eksporterer strukturerede poster.

Resultat

Softwaren er udviklet til at reducere manuel indsamling og uensartet dataudtrækning.

Kundehistorie

Kunden er en researchorganisation fra Tyskland. Den indsamler produkt-, annonce- og kontaktdata fra offentlige websites til researcharbejde.

Manuel og tilfældig indsamling koster teamet tid, især når målwebsites bruger sideinddeling, ændrede sidetyper og dynamiske tabeller.

Anmodningen var enkel: Modtag mål-URL'er eller URL-mønstre, konfigurerbare selektorer eller konfigurationsfiler, og returnér valgt websiteindhold som strukturerede poster.

Løsningen blev bygget omkring konfigurerbare feltregler, crawling på tværs af flere sider og browserbaseret rendering. Planlagte kørsler og tydelige logs understøttede gentagelig indsamling.

Kunden bad om

  1. Modtag URL'er, URL-mønstre, selektorer, XPath'er eller konfigurationsfiler
  2. Udtræk valgt indhold til strukturerede poster
  3. Følg sideinddeling på tværs af sider og websites
  4. Håndter JavaScript-sider, dynamiske tabeller og lazy loading

Hvorfor standardsoftware ikke passede

Standardsoftware til dataudtræk dækker mange kildetyper, mens administrerede scrapingtjenester fokuserer på API'er, browserinfrastruktur og proxy-tjenester. Denne kunde havde brug for projektspecifikke felter, selektorer og regler for sideinddeling. Løsningen skulle også kunne køre lokalt og indeholde dokumentation samt definerede outputkrav.

Projektoversigt

Løsningen blev designet omkring en konfigurationsskærm, hvor researchteamet definerer mål-URL'er, felter og selektorer. Regler for sideinddeling og outputformater er også tilgængelige.

For at håndtere forskellige sidetyper bruger scraperen konfigurerbare udtræksregler for felter, synlig tekst og tabeller. Den crawler relaterede sider og følger sideinddeling efter behov.

Browserbaseret rendering blev leveret til JavaScript-sider, dynamiske tabeller og lazy-loaded indhold. Statiske sider kan i stedet bruge direkte HTTP-anmodninger og HTML-fortolkning.

Løsningen blev også udviklet til gentagelig drift. Den kan køres fra kommandolinjen eller en lokal maskine, understøtter planlægning og registrerer fejl og gentagne forsøg.

De indsamlede poster kan derfor eksporteres til CSV, JSON eller Excel. PostgreSQL, et enkelt REST JSON-endpoint og projektdokumentation understøtter videre brug i kundens team.

Vigtigste leverede funktioner

  • Konfigurerbare mål-URL'er og URL-mønstre
  • Editor til feltselektorer og XPath
  • Crawling på flere sider og sideinddeling
  • Rendering af JavaScript og lazy-loaded indhold
  • CSV-, JSON- og Excel-eksport
  • Ratebegrænsninger, forsinkelser, gentagne forsøg og user-agent-indstillinger
  • Kørselshistorik og scrapinglogs
  • Levering via PostgreSQL eller REST JSON

Kan tilføjes

+ Kontroller til overholdelse af robots.txt + Cloudbaseret planlægning + Dataarkivering + Projektspecifik dokumentation + Yderligere databasemappinger

Hvem kan ellers bruge denne løsning

Disse virksomheder har en lignende opgave, og den samme løsning kan tilpasses deres indsamling af offentlige websitedata.

Et markedsanalysebureau

Opgave Det indsamler produkt-, markeds- og kontaktdata fra offentlige websites.
Sådan hjælper løsningen Løsningen hjælper med at anvende gentagelige udtræksregler og eksportere strukturerede researchposter.

Et dataanalyseteam

Opgave Det indsamler annoncer, tabeller og udvalgt indhold fra offentlige websites.
Sådan hjælper løsningen Løsningen hjælper med at følge sideinddeling, rendere dynamiske sider og levere poster til filer eller databaser.

Et researchkonsulenthus

Opgave Det arkiverer eller analyserer synlig tekst og struktureret indhold fra offentlige websider.
Sådan hjælper løsningen Løsningen hjælper med at planlægge kørsler, gennemgå fejl og gemme genererede filer sammen med kørsel-logs.

Teknologier

Python

Automatiseringssprog

Python kører den konfigurerbare scraper, udtræksregler, datahåndtering og eksporter.

JavaScript / TypeScript

Sprog til browserautomatisering

JavaScript eller TypeScript understøtter browserautomatisering, hvor browserbaseret udtrækning anvendes.

Requests

Hent HTML-sider

Requests (et Python-bibliotek til afsendelse af webanmodninger) henter sider til direkte udtrækning.

BeautifulSoup

Fortolk side-HTML

BeautifulSoup (et Python-bibliotek til læsning af HTML) finder valgte felter og synligt indhold i sidens markup.

Scrapy

Crawl flere sider

Scrapy (et Python-framework til webcrawling) følger relaterede sider og understøtter udtrækning på flere sider.

Playwright

Render browsersider

Playwright er en API på højt niveau til automatisering af webbrowsere under browserbaseret udtrækning.

Pandas

Håndter udtrukne data

Pandas organiserer udtrukne poster før eksport eller levering.

openpyxl

Skriv Excelfiler

openpyxl (et Python-bibliotek til læsning og skrivning af Excelfiler) understøtter XLSX-output.

CSV

Eksportér tabelposter

CSV gemmer udtrukne poster i en enkel tabel-fil.

JSON

Eksportér strukturerede poster

JSON gemmer udtrukne felter som strukturerede poster til filer eller API'er.

Integrationer

PostgreSQL

Scraperen skriver indsamlede poster til PostgreSQL, når levering til en database er påkrævet.

REST JSON endpoint

Løsningen gør indsamlede poster tilgængelige via et enkelt REST JSON-endpoint efter behov.

Excel

Løsningen udveksler udtrukne poster via XLSX-filer.

Command line and local scheduling

Scraperen køres fra kommandolinjen eller en lokal maskine med cron eller Windows Task Scheduler.

Resultatet

Indstil udtræksregler for hvert website

Skærmen med konfiguration samler målwebsites, felter og selektorer. Indstillinger for sideinddeling og dynamisk indhold er også tilgængelige.

Det giver researchteamet et tydeligt sted at definere, hvad scraperen skal indsamle før en kørsel.

Sådan fungerer det

  1. Konfigurationen gemmer website-URL'er, nødvendige felter og selektorer eller XPath'er.
  2. Scraperen anvender feltregler på valgt sideindhold.
  3. Moduler til sideinddeling og dynamisk indhold forbereder kørslen til relaterede sider og browser-renderet indhold.
  • Mål-URL'er kan være enkelte adresser eller URL-mønstre.
  • Output omfatter CSV, JSON eller Excel.
Bemærk: Ratebegrænsninger, forsinkelser, user-agent-indstillinger, gentagne forsøg og kontroller til overholdelse af robots.txt understøtter ansvarlig indsamling.
Scraperkonfiguration

Scraperkonfiguration

Funktioner på denne skærm
Udtræk valgte felter Håndter sideinddeling Render dynamisk indhold

Gennemgå strukturerede websiteposter

Resultattabellen viser udtrukne felter, synlig tekst og tabeller som strukturerede poster.

CSV-, JSON- og Excel-eksport holder de indsamlede data klar til researchfiler og videre analyse.

Sådan fungerer det

  1. Udtræksmodulet opretter poster fra valgte felter, synlig tekst, tabeller eller annoncer.
  2. Resultattabellen viser udtrukne felter og antal poster.
  3. Eksportmodulet opretter CSV-, JSON- eller XLSX-filer.
  • JSON egner sig til struktureret dataudveksling.
  • Excel er tilgængeligt, når udtrækkets omfang kræver det.
Udtrukne poster og eksport

Udtrukne poster og eksport

Funktioner på denne skærm
Udtræk strukturerede data Eksportér data til CSV eller JSON

Følg kørsler og undersøg fejl

Kørselshistorikken viser målwebsites, tidsstempler og status. Den registrerer også fejl, gentagne forsøg og stier til genererede filer.

Logs giver teamet en praktisk måde at gennemgå scraperaktivitet på, når en side ændres, eller en kørsel kræver opmærksomhed.

Sådan fungerer det

  1. Scraperen registrerer kørselstidspunkter, målwebsites og status for succes eller fejl.
  2. Logvisningen viser fejlmeddelelser og oplysninger om gentagne forsøg.
  3. Links til genererede filer forbinder hver kørsel med dens CSV-, JSON- eller logstier.
  • Kørselshistorikken registrerer gentagen indsamlingsaktivitet.
  • Fejlmeddelelser viser problemer, der blev registreret under en kørsel.
Kørselshistorik og scraperlogs

Kørselshistorik og scraperlogs

Funktioner på denne skærm
Log scrapingaktivitet

Send poster til en database eller API

Leveringsskærmen forbereder indsamlede poster til brug i en database eller et API i stedet for kun at efterlade dem i eksportfiler.

Mapping mellem felter og skema samt en forhåndsvisning af JSON-payload hjælper med at tilpasse de udtrukne data til destinationsstrukturen.

Sådan fungerer det

  1. Destinationsmodulet gemmer databaseindstillinger eller destinationskonfiguration.
  2. Mappingmodulet matcher udtrukne felter med måltabellens skema.
  3. Integrationsmodulet registrerer skematilpasset JSON, dataposter og kørselslogs.
  • Løsningen understøtter levering via PostgreSQL efter behov.
  • Et enkelt REST JSON-endpoint er tilgængeligt til ønskede integrationer.
Levering til database eller API

Levering til database eller API

Hvad løsningen giver

Med denne løsning kan researchorganisationen:

  • Definere udtræksregler for hvert målwebsite
  • Indsamle valgt indhold på tværs af sider med sideinddeling
  • Håndtere browser-renderet og lazy-loaded indhold
  • Eksportere strukturerede poster til CSV, JSON eller Excel
  • Gennemgå fejl, gentagne forsøg og genererede filer
  • Sende indsamlede poster til en database eller et API

Kan standardløsninger udføre opgaven?

Før designet blev opgaven sammenlignet med standardprodukter ud fra deres egne beskrivelser.

Hvad kunden har brug for Software til dataudtræk Data Extraction Webscraping-API'er Oxylabs, Zyte, Scrapfly No-code-scrapingværktøjer Octoparse Skræddersyet løsning
Modtage URL'er og udtræksregler
Udtrække valgt websiteindhold
Følge sideinddeling på tværs af sider
Håndtere dynamisk browserindhold delvist
Passe til kundens egne regler: trin, roller og rapporter — — —
Alle trin samlet ét sted —
Ingen manuelle trin mellem programmer delvist delvist

Baseret på produkternes og kategoriernes offentlige beskrivelser.

De vigtigste dele af opgaven findes i software til dataudtræk, webscraping-API'er og no-code-scrapingværktøjer. Et standardprodukt er tilstrækkeligt, når der kun er brug for én del af opgaven.

Denne kunde havde brug for sin egen software, fordi udtræksregler, lokal drift, dokumentation, outputformater, logs og destinationskrav skulle passe til researcharbejdet ét sted. Standardløsninger varierer også i deres håndtering af manuelle trin mellem programmer.

Til sidst

Til sidst blev løsningen udviklet til at fjerne manuel indsamling fra vejen mellem offentlige websites og strukturerede researchdata.

FAQ

Overvejer du at bygge et lignende system? Læs svarene nedenfor for at se, hvordan konfigurerbar scraping, eksporter, browser-rendering og levering kan passe ind i en researcharbejdsgang.