PROJEKTI

Verkkosivujen kaavinta mukautettavalla Python-automatisoinnilla

Mukautettu ohjelmistokehitys, Verkkosivujen tietojen kaavinta, Määritettävä Python-automatisointi, Jäsennelty CSV- ja JSON-vienti, JavaScript-sivujen renderöinti, Toistuvat kaava-ajot, Tietokanta- ja rajapintatoimitus

  • Toimiala: Tutkimuspalvelut
  • Saksa Sijainti: Saksa
  • Toimitusaika: 10 viikkoa
  • Teknologiat: Python, JavaScript / TypeScript
3 kuukautta

Asiakas käyttää aikaa tuote-, listaus- ja yhteystietojen keräämiseen julkisilta verkkosivuilta. Manuaalinen tai tapauskohtainen keruu vaikeuttaa toistettavaa tutkimustyötä. Ohjelmisto vastaanottaa kohde-URL-osoitteet tai URL-mallit, valitsimet ja sivusäännöt. Se palauttaa jäsennellyt tietueet CSV-, JSON- tai Excel-muodossa. Tutkimusorganisaatio saa yhden määritettävän työkalun toistuvaan verkkosivutietojen poimintaan, myös selainpohjaista renderöintiä vaativilta sivuilta.

Yhteenveto

Ongelma

Tutkimusorganisaatio käyttää aikaa manuaalisen tai tapauskohtaisen verkkosivukeruun korvaamiseen toistettavalla poiminnalla.

Ratkaisu

Ratkaisuksi rakennettiin määritettävä kaavin, joka noudattaa sivusääntöjä, käsittelee dynaamista sisältöä ja vie jäsenneltyjä tietueita.

Tulos

Ohjelmisto on suunniteltu vähentämään manuaalista keruuta ja epäyhtenäistä poimintaa.

Asiakastarina

Asiakas on saksalainen tutkimusorganisaatio. Se kerää tutkimustyötä varten tuote-, listaus- ja yhteystietoja julkisilta verkkosivuilta.

Manuaalinen ja tapauskohtainen keruu vie tiimin aikaa etenkin silloin, kun kohdesivustoilla käytetään sivutusta, muuttuvia sivurakenteita ja dynaamisia taulukoita.

Pyyntö oli yksinkertainen: vastaanota kohde-URL-osoitteet tai URL-mallit, määritettävät valitsimet tai määritystiedostot ja palauta valittu verkkosivusisältö jäsenneltyinä tietueina.

Ratkaisu rakennettiin määritettävien kenttäsääntöjen, monisivuisen indeksoinnin ja selainpohjaisen renderöinnin ympärille. Ajastetut ajot ja selkeät lokit tukivat toistettavaa keruuta.

Asiakas tarvitsi

  1. URL-osoitteiden, URL-mallien, valitsimien, XPath-lausekkeiden tai määritystiedostojen vastaanoton
  2. Valitun sisällön poiminnan jäsennellyiksi tietueiksi
  3. Sivutuksen seuraamisen sivujen ja verkkosivustojen välillä
  4. JavaScript-sivujen, dynaamisten taulukoiden ja viiveellä lataamisen käsittelyn

Miksi valmis ohjelmisto ei sopinut

Valmis tiedonpoimintaohjelmisto kattaa monia lähdetyyppejä, kun taas hallinnoidut kaavintapalvelut keskittyvät rajapintoihin, selaininfrastruktuuriin ja välityspalveluihin. Tämä asiakas tarvitsi projektikohtaiset kentät, valitsimet ja sivutussäännöt. Ratkaisun tuli tukea myös paikallista käyttöä, dokumentaatiota ja määritettyjä tulostusvaatimuksia.

Projektin yleiskuvaus

Ratkaisu suunniteltiin kaavinnan määritysnäkymän ympärille. Siinä tutkimustiimi määrittää kohde-URL-osoitteet, kentät ja valitsimet. Myös sivutuksen säännöt ja tulostusmuodot ovat käytettävissä.

Erilaisten sivurakenteiden käsittelyä varten kaavin käyttää määritettäviä poimintasääntöjä kentille, näkyvälle tekstille ja taulukoille. Se käy läpi toisiinsa liittyvät sivut ja seuraa sivutusta tarvittaessa.

Selainpohjainen renderöinti mahdollistettiin JavaScript-sivuille, dynaamisille taulukoille ja viiveellä ladattavalle sisällölle. Staattisilla sivuilla voidaan sen sijaan käyttää suoria HTTP-pyyntöjä ja HTML-jäsennystä.

Ratkaisu suunniteltiin myös toistettavaa käyttöä varten. Se toimii komentoriviltä tai paikalliselta koneelta, tukee ajastusta ja tallentaa virheet sekä uudelleenyritykset.

Kerätyt tietueet voidaan viedä CSV-, JSON- tai Excel-muotoon. PostgreSQL, kevyt REST JSON -päätepiste ja projektidokumentaatio tukevat asiakkaan tiimin jatkokäyttöä.

Toimitetut pääominaisuudet

  • Määritettävät kohde-URL-osoitteet ja URL-mallit
  • Kenttävalitsin- ja XPath-editori
  • Monisivuinen indeksointi ja sivutus
  • JavaScriptin ja viiveellä ladattavan sisällön renderöinti
  • CSV-, JSON- ja Excel-vienti
  • Pyyntörajat, viiveet, uudelleenyritykset ja user-agent-asetukset
  • Ajohistoria ja kaavalokit
  • PostgreSQL- tai REST JSON -toimitus

Voidaan lisätä

+ Robots.txt-yhteensopivuuden hallinta + Pilvipohjainen ajastus + Tietojen arkistointi + Projektikohtainen dokumentaatio + Lisätietokantamääritykset

Ketkä muut voivat käyttää tätä ratkaisua

Näillä yrityksillä on samanlainen tehtävä, ja sama ratkaisu voidaan mukauttaa niiden julkisten verkkosivujen tietojen keruuseen.

Markkinatutkimustoimisto

Tehtävä Se kerää tuote-, markkina- ja yhteystietoja julkisilta verkkosivuilta.
Miten ratkaisu auttaa Ratkaisu auttaa sitä käyttämään toistettavia poimintasääntöjä ja viemään jäsenneltyjä tutkimustietueita.

Data-analyysitiimi

Tehtävä Se kerää listauksia, taulukoita ja valittua sisältöä julkisilta verkkosivuilta.
Miten ratkaisu auttaa Ratkaisu auttaa sitä seuraamaan sivutusta, renderöimään dynaamisia sivuja ja toimittamaan tietueet tiedostoihin tai tietokantoihin.

Tutkimuskonsultti

Tehtävä Se arkistoi tai analysoi näkyvää tekstiä ja jäsenneltyä sisältöä julkisilta verkkosivuilta.
Miten ratkaisu auttaa Ratkaisu auttaa sitä ajastamaan ajot, tarkistamaan virheet ja säilyttämään luodut tiedostot ajolokien kanssa.

Teknologiapino

Python

Automatisointikieli

Python suorittaa määritettävän kaavan, poimintasäännöt, tietojen käsittelyn ja viennit.

JavaScript / TypeScript

Selainautomatisoinnin kieli

JavaScript tai TypeScript tukee selainautomatisointia, kun poiminta tehdään selaimen avulla.

Requests

HTML-sivujen pyytäminen

Requests (Python-kirjasto verkkopyyntöjen lähettämiseen) hakee sivut suoraa poimintaa varten.

BeautifulSoup

Sivujen HTML:n jäsentäminen

BeautifulSoup (Python-kirjasto HTML:n lukemiseen) löytää valitut kentät ja näkyvän sisällön sivun merkinnöistä.

Scrapy

Useiden sivujen indeksointi

Scrapy (Python-kehys verkkosivujen indeksointiin) seuraa toisiinsa liittyviä sivuja ja tukee monisivuista poimintaa.

Playwright

Selainikkunoiden sivujen renderöinti

Playwright on korkean tason rajapinta verkkoselainten automatisointiin selainpohjaisen poiminnan aikana.

Pandas

Poimittujen tietojen käsittely

Pandas järjestää poimitut tietueet ennen vientiä tai toimitusta.

openpyxl

Excel-tiedostojen kirjoittaminen

openpyxl (Python-kirjasto Excel-tiedostojen lukemiseen ja kirjoittamiseen) tukee XLSX-tulostusta.

CSV

Taulukkotietueiden vienti

CSV tallentaa poimitut tietueet yksinkertaiseen taulukkomuotoiseen tiedostoon.

JSON

Jäsenneltyjen tietueiden vienti

JSON tallentaa poimitut kentät jäsenneltyinä tietueina tiedostoja tai rajapintoja varten.

Integraatiot

PostgreSQL

Kaavin kirjoittaa kerätyt tietueet PostgreSQL-tietokantaan, kun tietokantatoimitusta tarvitaan.

REST JSON endpoint

Ratkaisu tarjoaa kerätyt tietueet kevyen REST JSON -päätepisteen kautta pyydettäessä.

Excel

Ratkaisu vaihtaa poimittuja tietueita XLSX-tiedostojen kautta.

Command line and local scheduling

Kaavin toimii komentoriviltä tai paikalliselta koneelta cronin tai Windows Task Schedulerin avulla.

Tulos

Määritä kullekin verkkosivulle poimintasäännöt

Kaavan määritysnäkymä pitää kohdesivustot, kentät ja valitsimet yhdessä paikassa. Myös sivutus- ja dynaamisen sisällön asetukset ovat käytettävissä.

Tutkimustiimi saa selkeän paikan määrittää, mitä kaavin kerää ennen ajoa.

Näin se toimii

  1. Määritykseen tallennetaan verkkosivujen URL-osoitteet, tarvittavat kentät sekä valitsimet tai XPath-lausekkeet.
  2. Kaavin soveltaa kenttäsääntöjä valittuun sivusisältöön.
  3. Sivutus- ja dynaamisen sisällön moduulit valmistelevat ajon toisiinsa liittyville sivuille ja selainrenderöidylle sisällölle.
  • Kohde-URL-osoitteet voivat olla yksittäisiä osoitteita tai URL-malleja.
  • Tulostusmuotoja ovat CSV, JSON ja Excel.
Huomautus: Pyyntörajat, viiveet, user-agent-asetukset, uudelleenyritykset ja robots.txt-yhteensopivuuden hallinta tukevat vastuullista keruuta.
Kaavan määritykset

Kaavan määritykset

Tämän näkymän toiminnot
Valittujen kenttien poiminta Sivutuksen käsittely Dynaamisen sisällön renderöinti

Tarkastele jäsenneltyjä verkkosivutietueita

Tulosten tulostaulukko esittää poimitut kentät, näkyvän tekstin ja taulukot jäsenneltyinä tietueina.

CSV-, JSON- ja Excel-vienti pitää kerätyt tiedot valmiina tutkimustiedostoihin ja jatkoanalyysiin.

Näin se toimii

  1. Poimintamoduuli luo tietueita valituista kentistä, näkyvästä tekstistä, taulukoista tai listauksista.
  2. Tulostaulukko näyttää poimitut kentät ja tietueiden määrän.
  3. Vientimoduuli luo CSV-, JSON- tai XLSX-tiedostoja.
  • JSON sopii jäsenneltyyn tiedonsiirtoon.
  • Excel on käytettävissä, kun poiminnan laajuus sitä edellyttää.
Poimitut tietueet ja vienti

Poimitut tietueet ja vienti

Tämän näkymän toiminnot
Jäsenneltyjen tietojen poiminta Tietojen vienti CSV- tai JSON-muotoon

Seuraa ajoja ja tutki virheitä

Ajohistoria näyttää kohdesivustot, aikaleimat ja tilan. Se tallentaa myös virheet, uudelleenyritykset ja luotujen tiedostojen polut.

Lokit tarjoavat tiimille käytännöllisen tavan tarkistaa kaavan toiminta, kun sivu muuttuu tai ajo vaatii huomiota.

Näin se toimii

  1. Kaavin tallentaa ajojen aikaleimat, kohdesivustot ja onnistumis- tai epäonnistumistilan.
  2. Lokikatselin näyttää virheilmoitukset ja uudelleenyritysten tiedot.
  3. Luotujen tiedostojen linkit yhdistävät jokaisen ajon sen CSV-, JSON- tai lokipolkuihin.
  • Ajohistoria tallentaa toistuvan keruun tapahtumat.
  • Virheilmoitukset näyttävät ajon aikana kirjatut ongelmat.
Ajohistoria ja kaavalokit

Ajohistoria ja kaavalokit

Tämän näkymän toiminnot
Kaavintatoimien kirjaaminen

Lähetä tietueet tietokantaan tai rajapintaan

Toimitusnäkymä valmistelee kerätyt tietueet tietokanta- tai rajapintakäyttöön sen sijaan, että ne jäisivät vain vientitiedostoihin.

Kenttien ja skeeman välinen määritys sekä JSON-hyötykuorman esikatselu auttavat sovittamaan poimitut tiedot kohteen rakenteeseen.

Näin se toimii

  1. Kohdemoduuli tallentaa tietokanta-asetukset tai kohteen määritykset.
  2. Määritysmoduuli yhdistää poimitut kentät kohdetaulun skeemaan.
  3. Integraatiomoduuli tallentaa skeeman mukaiset JSON-tiedot, tietokantatietueet ja ajolokit.
  • Ratkaisu tukee PostgreSQL-toimitusta tarvittaessa.
  • Kevyt REST JSON -päätepiste on käytettävissä pyydettyjä integraatioita varten.
Toimitus tietokantaan tai rajapintaan

Toimitus tietokantaan tai rajapintaan

Mitä ratkaisu tarjoaa

Tämän ratkaisun avulla tutkimusorganisaatio voi:

  • Määrittää poimintasäännöt kullekin kohdesivustolle
  • Kerätä valittua sisältöä sivutettujen sivujen läpi
  • Käsitellä selainrenderöityä ja viiveellä ladattavaa sisältöä
  • Viedä jäsennellyt tietueet CSV-, JSON- tai Excel-muotoon
  • Tarkistaa virheet, uudelleenyritykset ja luodut tiedostot
  • Lähettää kerätyt tietueet tietokantaan tai rajapintaan

Voisivatko valmisjärjestelmät hoitaa tehtävän?

Ennen suunnittelua tehtävää verrattiin valmiisiin tuotteisiin niiden omien kuvausten perusteella.

Asiakkaan tarpeet Tiedonpoimintaohjelmistot Data Extraction Verkkokaavinnan rajapinnat Oxylabs, Zyte, Scrapfly No-code-kaavintatyökalut Octoparse Mukautettu ratkaisu
URL-osoitteiden ja poimintasääntöjen vastaanotto
Valitun verkkosivusisällön poiminta
Sivutuksen seuraaminen sivujen läpi
Dynaamisen selain-sisällön käsittely osittain
Sopii asiakkaan omiin sääntöihin: vaiheet, roolit ja raportit — — —
Kaikki vaiheet yhdessä paikassa —
Ei manuaalisia vaiheita ohjelmien välillä osittain osittain

Tuotteiden ja niiden kategorioiden julkisten kuvausten perusteella.

Tehtävän pääosat löytyvät tiedonpoimintaohjelmistoista, verkkokaavinnan rajapinnoista ja no-code-kaavintatyökaluista. Valmis tuote riittää, kun tarvitaan vain yksi osa tehtävästä.

Tämä asiakas tarvitsi oman ohjelmiston, koska poimintasääntöjen, paikallisen käytön, dokumentaation, tulostusmuotojen, lokien ja kohdevaatimusten tuli sopia tutkimustyöhön yhdessä paikassa. Valmiit vaihtoehdot eroavat myös siinä, miten ne käsittelevät ohjelmien välisiä manuaalisia vaiheita.

Lopputulos

Lopulta ratkaisu suunniteltiin poistamaan manuaalinen keruu julkisilta verkkosivuilta jäsenneltyyn tutkimustietoon johtavasta prosessista.

UKK

Harkitsetko vastaavan järjestelmän rakentamista? Lue alla olevat vastaukset ja katso, miten määritettävä kaavinta, viennit, selainrenderöinti ja toimitus voidaan sovittaa tutkimustyönkulkuun.