Puppeteer web-scrapaukseen: vaiheittainen opas

Viimeksi päivitetty May 22, 2026
 Puppeteer scraper web scraping step-by-step guide title with browser window illustration on a spider web.

Jos olet joskus yrittänyt hakea dataa sivustolta, joka lataa sisältöä sitä mukaa kun rullaat, piilottaa hinnat kirjautumisen taakse tai tuntuu vaihtavan ulkoasuaan joka toinen viikko, tiedät, ettei homma ole helppo. Staattiset scraperit eivät enää yksinkertaisesti riitä. Itse asiassa yli 67 % yhdysvaltalaisista sijoitusneuvonantajista hyödyntää nyt web-scrapingia vaihtoehtoisena datana, ja 81 % yhdysvaltalaisista vähittäiskauppiaista automatisoi kilpailijoiden hintaseurantaa. Mutta tässä on juju: suuri osa tästä datasta on dynaamisilla sivustoilla, joissa JavaScript renderöi sisällön ja osa tiedoista näkyy vasta käyttäjän toimien jälkeen. Silloin kuvaan astuvat headless-selainten automaatio — ja työkalut kuten Puppeteer.

Koska olen käyttänyt vuosia automaatio- ja tekoälytyökalujen rakentamiseen (ja kyllä, myös kaivanut reilun osan verkkosivuista myynti- ja operatiivisten tiimien tarpeisiin), olen nähnyt omin silmin, miten Puppeteer voi avata datan, jonka perinteiset scraperit jättävät huomaamatta. Olen myös nähnyt, miten koodin määrä voi muodostua liiketoimintakäyttäjälle ratkaisevaksi esteeksi. Tässä oppaassa käyn läpi, mikä Puppeteer scraper tarkalleen on, miten sitä käytetään web-scrapingiin ja milloin kannattaa tarttua vieläkin yksinkertaisempaan vaihtoehtoon — kuten Thunderbitiin, meidän tekoälypohjaiseen, koodittomaan web scraperiin.

Mikä on Puppeteer Scraper? Nopea yleiskatsaus

puppeteer-scraper-data-extraction-automation.png Aloitetaan perusteista. Puppeteer on Googlen avoimen lähdekoodin Node.js-kirjasto, jonka avulla voit ohjata headless Chrome- tai Chromium-selainta JavaScriptillä. Selkokielellä: se on kuin robotti, joka voi avata verkkosivuja, klikata nappeja, täyttää lomakkeita, rullata sivua ja ennen kaikkea poimia dataa — kaikki ilman, että mitään näkyy ruudullasi.

Mikä tekee Puppeteerista erityisen?

  • Se pystyy renderöimään dynaamista sisältöä — eli se odottaa, että JavaScript latautuu, aivan kuten oikea käyttäjä.
  • Se pystyy jäljittelemään käyttäjän toimia: klikkauksia, kirjoittamista, rullaamista ja jopa ponnahdusikkunoiden käsittelyä.
  • Se sopii erinomaisesti sivustoille, joissa data ilmestyy vasta vuorovaikutuksen jälkeen, kuten verkkokauppalistauksiin, somevirtoihin tai hallintapaneeleihin.

Miten se vertautuu muihin työkaluihin?

  • Selenium: selainten automaation OG. Toimii monien selainten ja kielten kanssa, mutta on raskaampi ja vähän vanhan koulukunnan ratkaisu. Erinomainen moniselaintestaukseen, mutta Puppeteer on ketterämpi Chrome-/Node.js-projekteissa.
  • Thunderbit: tässä kohtaa innostun. Thunderbit on kooditon, tekoälypohjainen web scraper, joka toimii selaimessasi. Skriptien kirjoittamisen sijaan klikkaat vain “AI Suggest Fields” ja annat tekoälyn päätellä, mitä dataa kannattaa poimia. Se on täydellinen liiketoimintakäyttäjille, jotka haluavat tuloksia ilman koodia (lisää tästä myöhemmin).

Lyhyesti: Puppeteer = maksimaalinen hallinta (jos koodaat). Thunderbit = maksimaalinen helppous (jos et halua koodata).

Miksi Puppeteer Web Scraping on tärkeää liiketoimintakäyttäjille

Mitä on datan kaavinta ja miten sitä tehdään vuonna 2026 Get Started Free

Pysytään tosiasioissa: web-scraping ei ole enää vain hakkereille tai datatieteilijöille. Myynti-, operaatio-, markkinointi- ja jopa kiinteistötiimit hyödyntävät verkkodataa saadakseen etulyöntiaseman. Ja kun niin paljon liiketoimintakriittistä tietoa on dynaamisten sivustojen takana, Puppeteer on usein avain sen vapauttamiseen.

Tässä muutamia käytännön käyttötapauksia:

KäyttötapausHyötyjätVaikutus / ROI
Liidien generointiMyynti, liiketoiminnan kehitysAutomatisoi potentiaalisten asiakkaiden listan rakentaminen; säästä yli 8 tuntia/viikko myyjää kohden (case study)
HintaseurantaVerkkokauppa, tuotanto-operaatiotReaaliaikainen kilpailijaseuranta; yksi suuryritys säästi 3,8 miljoonaa dollaria vuodessa (source)
MarkkinatutkimusMarkkinointi, strategia, talous67 % sijoitusneuvonantajista käyttää web-scrapattua dataa; joissain tapauksissa jopa 890 % ROI (source)
Kiinteistöjen koontiVälittäjät, analyytikotRaaputa yli 50 kohdesivua minuuteissa, ei tunneissa (source)
Vaatimustenmukaisuuden seurantaOperaatio, lakitiimiAutomatisoi valvonta; yksi vakuutusyhtiö vältti 50 miljoonan dollarin sanktiot (source)

Ja muistetaan myös tämä: yli 40 % työntekijöistä käyttää neljänneksen työviikostaan toistuviin tehtäviin, kuten datan keräämiseen. Tämän automatisointi web-scrapingilla ei ole vain kiva lisä — se on kilpailuetu.

Aloittaminen: Puppeteer-scraperin käyttöönotto

Valmiina tarttumaan toimeen? Näin saat Puppeteerin käyntiin alle 10 minuutissa (olettaen, että JavaScript ei pelota):

1. Asenna Node.js
Puppeteer toimii Node.js:n päällä. Lataa uusin LTS-versio sivustolta nodejs.org.

2. Luo uusi projektikansio
Avaa terminaali ja aja:

mkdir puppeteer-scraper-demo
cd puppeteer-scraper-demo
npm init -y

3. Asenna Puppeteer

npm install puppeteer

Tämä lataa myös yhteensopivan Chromium-version (noin 100 Mt).

4. Luo ensimmäinen skriptisi
Tee tiedosto nimeltä scrape.js:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
  const title = await page.title();
  console.log('Sivun otsikko:', title);
  await browser.close();
})();

Aja se näin:

node scrape.js

Jos näet viestin “Sivun otsikko: Example Domain”, onnittelut — automatisoit juuri Chromen!

Ensimmäisen Puppeteer-web-scraping-skriptin rakentaminen

Tehdään tästä käytännöllistä. Kuvitellaan, että haluat raapia sitaatteja sivustolta quotes.toscrape.com (demo-sivusto scrapeille).

Vaihe 1: Siirry sivulle

await page.goto('http://quotes.toscrape.com', { waitUntil: 'networkidle0' });

Vaihe 2: Poimi data

const quotes = await page.evaluate(() => {
  return Array.from(document.querySelectorAll('.quote')).map(node => ({
    text: node.querySelector('.text')?.innerText.trim(),
    author: node.querySelector('.author')?.innerText.trim(),
    tags: Array.from(node.querySelectorAll('.tag')).map(tag => tag.innerText.trim())
  }));
});
console.log(quotes);

Vaihe 3: Käsittele sivutus

let hasNext = true;
let allQuotes = [];
while (hasNext) {
  // Poimi sitaatit kuten yllä
  const quotes = await page.evaluate(/* ... */);
  allQuotes.push(...quotes);

  const nextButton = await page.$('li.next > a');
  if (nextButton) {
    await Promise.all([
      page.click('li.next > a'),
      page.waitForNavigation({ waitUntil: 'networkidle0' })
    ]);
  } else {
    hasNext = false;
  }
}

Vaihe 4: Tallenna JSON-muotoon

const fs = require('fs');
fs.writeFileSync('quotes.json', JSON.stringify(allQuotes, null, 2));

Ja siinä se — perus-Puppeteer scraper, joka navigoi, poimii, sivuttaa ja tallentaa datan.

Edistyneet Puppeteer-scraper-tekniikat: dynaamisen sisällön käsittely

Useimmat oikean maailman sivustot eivät ole yhtä yksinkertaisia kuin staattinen lista. Näin selätät vaikeammat tapaukset:

1. Odota dynaamisia elementtejä

await page.waitForSelector('.product-list-item');

Tämä varmistaa, että haluamasi sisältö on latautunut ennen kuin yrität poimia sitä.

2. Jäljitä käyttäjän toimia

  • Klikkaa nappia: await page.click('#load-more');
  • Kirjoita kenttään: await page.type('#search', 'laptop');
  • Rullaa loputtomassa syötteessä:
    // Huom: page.waitForTimeout poistettiin Puppeteer v22:ssa. Käytä sen sijaan tavallista lupausta.
    const sleep = (ms) => new Promise(r => setTimeout(r, ms));
    
    let previousHeight = await page.evaluate('document.body.scrollHeight');
    while (true) {
      await page.evaluate('window.scrollTo(0, document.body.scrollHeight)');
      await sleep(1500);
      const newHeight = await page.evaluate('document.body.scrollHeight');
      if (newHeight === previousHeight) break;
      previousHeight = newHeight;
    }
    


**3. Kirjautumisten käsittely**
```javascript
await page.goto('https://exampleshop.com/login');
await page.type('#login-username', 'myusername');
await page.type('#login-password', 'mypassword');
await page.click('#login-button');
await page.waitForNavigation({ waitUntil: 'networkidle0' });

4. AJAXilla ladatun datan käsittely Joskus data ei ole DOMissa, vaan tulee API-kutsun kautta. Voit kaapata verkkovastauksia näin:

page.on('response', async response => {
  if (response.url().includes('/api/products')) {
    const data = await response.json();
    // Käsittele data
  }
});

Käytännön esimerkki: tuotetietojen raapiminen verkkokaupasta

Kootaan kaikki yhteen. Kuvittele, että haluat raapia tuotenimet, hinnat ja kuvat (demo)verkkokaupasta kirjautumisen jälkeen.

const puppeteer = require('puppeteer');
const fs = require('fs');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();

  // Vaihe 1: Kirjaudu sisään
  await page.goto('https://exampleshop.com/login');
  await page.type('#login-username', 'myusername');
  await page.type('#login-password', 'mypassword');
  await page.click('#login-button');
  await page.waitForNavigation({ waitUntil: 'networkidle0' });

  // Vaihe 2: Siirry kategoriassivulle
  await page.goto('https://exampleshop.com/category/laptops', { waitUntil: 'networkidle0' });

  // Vaihe 3: Poimi tuotteet
  const products = await page.evaluate(() => {
    return Array.from(document.querySelectorAll('.product-item')).map(item => ({
      name: item.querySelector('.product-title')?.innerText.trim() || '',
      price: item.querySelector('.product-price')?.innerText.trim() || '',
      image: item.querySelector('img.product-image')?.src || ''
    }));
  });

  // Vaihe 4: Tallenna JSON-muotoon
  fs.writeFileSync('products.json', JSON.stringify(products, null, 2));

  await browser.close();
})();

Tämä skripti kirjautuu sisään, siirtyy sivuille, raapii ja tallentaa — kaikki automaattisesti. Edistyneempiä tarpeita varten voit lisätä silmukoita sivutukseen tai jopa klikata jokaisen tuotteen auki ja hakea lisätietoja.

Thunderbit: Puppeteer-scraperin tekeminen helpommaksi tekoälyn avulla

Kokeile Thunderbit Chrome -laajennusta Raaputa mitä tahansa sivustoa tekoälyn avulla kahdella klikkauksella. Get Started Free

Jos olet päässyt tänne asti ja ajattelet: “Tuo on hienoa, mutta en halua kirjoittaa koodia joka kerta, kun tarvitsen uuden aineiston”, et ole yksin. Juuri siksi rakensimme Thunderbitin.

Mikä tekee Thunderbitista erilaisen?

  • Koodia ei tarvita: Asenna vain Thunderbit Chrome -laajennus, avaa sivu, jonka haluat raapia, ja klikkaa “AI Suggest Fields”.
  • Tekoälypohjainen kenttien tunnistus: Thunderbit lukee sivun ja ehdottaa parhaat poimittavat sarakkeet — kuten “Tuotteen nimi”, “Hinta”, “Kuva” ja niin edelleen.
  • Käsittelee dynaamista sisältöä: Loputon rullaus, ponnahdusikkunat ja alasivut? Thunderbitin tekoäly hoitaa ne, klikkaa sivutuksen läpi tai käy jopa jokaisen tuotteen tuotesivulla rikastamassa dataasi.
  • Välitön vienti: Lähetä data suoraan Exceliin, Google Sheetiin, Notioniin tai Airtableen yhdellä klikkauksella. Viennistä ei veloiteta erikseen.
  • Mallipohjat suosituimmille sivustoille: Tarvitsetko Amazonin, Zillown tai LinkedInin raapimista? Thunderbitissä on valmiit mallipohjat — ei käyttöönottoa.
  • Pilvi- tai selainkaavinta: Isoihin töihin Thunderbit voi raapia jopa 50 sivua kerralla pilvessä.

Olen nähnyt käyttäjien siirtyvän “Haluaisin saada tämän datan” -vaiheesta “Tässä on taulukkolaskentani” -vaiheeseen alle viidessä minuutissa. Ja parasta? Ei enää huolta siitä, että skriptit hajoavat sivuston muuttuessa — Thunderbitin tekoäly mukautuu lennossa.

Kokeile Thunderbit AI Web Scraperia ilmaiseksi

Puppeteer vs. Thunderbit: oikean web-scraping-työkalun valinta

Mitä siis kannattaa käyttää? Näin tiivistän sen tiimeille:

TekijäPuppeteer (koodi)Thunderbit (kooditon, tekoäly)
HelppokäyttöisyysVaatii JavaScriptin ja DOM-rakenteen tuntemustaKlikkaa ja valitse, tekoäly ehdottaa kenttiä
Käyttöönoton nopeusTunteja tai päiviä monimutkaisissa tehtävissäMinuutteja — asenna ja aloita
Hallinta/joustavuusMaksimi: voit skriptata minkä tahansa logiikan ja integroida muihin koodeihinVahva tavallisissa tapauksissa; vähemmän sopiva erittäin räätälöityihin työnkulkuihin
Dynaaminen sisältöManuaalinen koodaus odotuksiin, klikkauksiin ja rullauksiinSisäänrakennettu tekoäly käsittelee dynaamisen sisällön, sivutuksen ja alasivut automaattisesti
YlläpitoSkriptit ovat sinun vastuullasi — päivitä, kun sivustot muuttuvatTekoäly mukautuu ulkoasun muutoksiin; vähemmän ylläpitoa käyttäjälle
Datan vientiKirjoitat oman vientilogiikkasiYhden klikkauksen vienti Exceliin, Sheetiin, Notioniin, Airtableen, CSV:hen, JSONiin
Paras valintaKehittäjät, erittäin räätälöidyt tai laajamittaiset raapimisetLiiketoimintakäyttäjät, nopeat projektit, ei-tekniset tiimit
HintaIlmainen (paitsi aikasi ja mahdollinen infrastruktuuri)Ilmainen taso saatavilla; maksulliset paketit krediiteillä (katso Thunderbit Pricing)

Yhteenveto:

  • Käytä Puppeteeria, jos tarvitset täyden hallinnan, sinulla on koodausresursseja tai haluat integroida scrapingin laajempaan sovellukseen.
  • Käytä Thunderbitiä, jos haluat tuloksia nopeasti, et halua koodata tai haluat antaa ei-teknisille tiimikavereille enemmän valtaa.

Rehellisesti sanottuna olen nähnyt tiimien käyttävän molempia: Thunderbitia nopeisiin voittoihin ja prototypointiin, Puppeteeria syviin integraatioihin tai erikoistapauksiin.

Vaiheittainen tarkistuslista: onnistuneen Puppeteer-web-scraping-projektin ajaminen

scraping-project-checklist-steps.png Tässä on oma luottotarkistuslistani sujuvaan Puppeteer-scraping-projektiin:

  1. Määritä tavoitteesi: Mitä dataa tarvitset? Missä se sijaitsee?
  2. Analysoi sivusto: Onko se dynaaminen? Tarvitaanko kirjautumista? Onko käytössä botinvastaisia suojauksia?
  3. Valmistele ympäristösi: Node.js, Puppeteer ja mahdolliset apukirjastot.
  4. Kirjoita proof-of-concept: Aloita yhdestä sivusta, hio selektorit kohdalleen.
  5. Käsittele dynaaminen sisältö: Käytä waitForSelector-toimintoa ja simuloi klikkauksia/rullauksia tarpeen mukaan.
  6. Lisää sivutus tai silmukat: Raapi kaikki sivut, ei vain yhtä.
  7. Toteuta estojen kiertämisen taktiikat: Satunnaista viiveet, aseta oikea User-Agent, käytä tarvittaessa proxyja.
  8. Vie ja validoi data: Tallenna JSON/CSV-muotoon, tarkista että tiedot ovat täydelliset.
  9. Optimoi ja käsittele virheet: Lisää try/catch, kirjaa eteneminen, käsittele puuttuva data siististi.
  10. Seuraa ja ylläpidä: Sivustot muuttuvat — ole valmis päivittämään skriptiäsi.

Vianetsintävinkkejä:

  • Jos selektorit palauttavat null-arvon, tarkista HTML ja käytä odotuksia.
  • Jos sinut estetään, hidasta tahtia, vaihda IP-osoitteita tai käytä stealth-laajennuksia.
  • Jos skripti kaatuu, tarkista muistivuodot tai käsittelemättömät poikkeukset.

Yhteenveto ja tärkeimmät opit

Web-scrapingista on tullut välttämätön taito dataohjautuville tiimeille. Puppeteer antaa sinulle voiman poimia dataa jopa kaikkein dynaamisimmilta, JavaScript-painotteisimmilta sivustoilta — mutta se vaatii jonkin verran koodausosaamista ja jatkuvaa ylläpitoa. Liiketoimintakäyttäjille, jotka haluavat ohittaa koodin ja päästä suoraan dataan, Thunderbit tarjoaa tekoälypohjaisen, koodittoman vaihtoehdon, joka on nopea, joustava ja yllättävän vankka.

Suositukseni olisi tämä:

  • Jos olet tekninen ja tarvitset syvää räätälöintiä, aloita Puppeteerista.
  • Jos haluat nopeutta, yksinkertaisuutta ja vähemmän ylläpitoa, kokeile Thunderbitiä ( ilmainen Chrome -laajennus on erinomainen aloituspaikka).
  • Useimmille tiimeille näiden kahden yhdistelmä kattaa 99 % verkkodatan tarpeista.

Haluatko nähdä lisää tällaisia oppaita? Katso Thunderbit Blogi tutoriaaleja, vertailuja ja uusinta tekoälypohjaista web-scrapingia varten.

Kokeile Thunderbit AI Web Scraperia Get Started Free

Usein kysytyt kysymykset

1. Mikä on Puppeteer scraper ja miksi sitä käytetään web-scrapingissa?
Puppeteer on Node.js-kirjasto, jonka avulla voit ohjata headless Chrome -selainta JavaScriptillä. Sitä käytetään web-scrapingissa, koska se pystyy lataamaan dynaamista sisältöä, jäljittelemään käyttäjän toimia ja poimimaan dataa sivustoilta, joita perinteiset scraperit eivät pysty käsittelemään.

2. Miten Puppeteer vertautuu Seleniumiin ja Thunderbitiin?
Selenium toimii useiden selainten ja kielten kanssa, mutta on raskaampi. Puppeteer on virtaviivaistettu Chrome-/Node.js-ympäristöön ja on monissa scraping-tehtävissä nopeampi. Thunderbit puolestaan on kooditon, tekoälypohjainen työkalu, jonka avulla ei-tekniset käyttäjät voivat raapia dataa vain muutamalla klikkauksella.

3. Mitkä ovat Puppeteer-web-scrapingin tärkeimmät liiketoimintahyödyt?
Datan keräämisen automatisointi säästää aikaa, vähentää virheitä ja mahdollistaa reaaliaikaiset oivallukset myynnissä, markkinoinnissa, operaatioissa ja muualla. Käyttökohteita ovat liidien generoinnista hintaseurantaan ja markkinatutkimukseen.

4. Mitkä ovat Puppeteer-scrapauksen suurimmat haasteet?
Suurimmat haasteet liittyvät dynaamisen sisällön käsittelyyn, botinestoilta välttymiseen ja skriptien ylläpitoon sivustojen muuttuessa. Sinun täytyy kirjoittaa koodia odotusten hallintaan, vuorovaikutuksen jäljittelyyn ja virheiden käsittelyyn.

5. Milloin minun kannattaa käyttää Thunderbitiä Puppeteerin sijaan?
Käytä Thunderbitiä, jos haluat välttää koodauksen, tarvitset tuloksia nopeasti tai haluat antaa ei-teknisille tiimikavereille enemmän valtaa. Se sopii erinomaisesti tavallisiin scraping-tehtäviin, nopeisiin projekteihin tai tilanteisiin, joissa haluat viedä datan Exceliin tai Google Sheetiin mahdollisimman vaivattomasti.

Valmis kokeilemaan fiksumpaa tapaa raapia dataa? Lataa Thunderbit tai syvenny lisää oppaisiin Thunderbit Blogissa. Hyviä scrapeja!

Lue lisää

Shuai Guan
Shuai Guan
Thunderbitin toimitusjohtaja | AI:n ja tiedon automaation asiantuntija Shuai Guan on Thunderbitin toimitusjohtaja ja Michiganin yliopiston insinööritieteiden alumni. Lähes kymmenen vuoden kokemuksella teknologian ja SaaS-arkkitehtuurin parissa hän on erikoistunut muuttamaan monimutkaiset tekoälymallit käytännöllisiksi, koodittomiksi tiedon poimintatyökaluiksi. Tässä blogissa hän jakaa suodattamattomia, kentällä koeteltuja näkemyksiä verkkosivujen datan keruusta ja automaatiostrategioista, jotta voit rakentaa älykkäämpiä, dataohjautuvia työnkulkuja. Kun hän ei optimoi tietotyönkulkuja, hän hyödyntää samaa tarkkuutta myös valokuvauksen parissa.
Topics
Puppeteer-scraperPuppeteer-web-scraping
Sisällysluettelo

Poimi verkkosivu pelkällä pyynnöllä

Kerro mitä tarvitset selkeällä englannilla. Tai vielä parempaa, älä kerro mitään.

Kokeile Thunderbitiä ilmaista
Poimi dataa AI:n avulla
Siirrä data helposti Google Sheetiin, Airtableen tai Notioniin
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week