A Step-by-Step Python Selenium Web Scraping Tutorial

Viimeksi päivitetty May 6, 2026
Step-by-step Python Selenium web scraping tutorial title slide with coding and web icons

Web ei ole enää entisensä. Nykyään lähes jokainen sivusto toimii JavaScriptin varassa ja lataa sisältöä lennossa — ajattele loputonta vieritystä, ponnahdusikkunoita ja koontinäyttöjä, jotka paljastavat salaisuutensa vasta yhden tai kahden klikkauksen jälkeen. Itse asiassa huimat 98,7 % kaikista verkkosivustoista käyttää nykyään JavaScriptiä, mikä tarkoittaa, että vanhan koulukunnan työkalut, jotka lukevat vain staattista HTML:ää, jäävät paitsi valtavasta määrästä arvokasta dataa. Jos olet joskus yrittänyt kaapia tuotteen hintoja modernilta verkkokauppasivustolta tai hakea kiinteistöilmoituksia interaktiiviselta kartalta, tiedät turhautumisen: haluamasi data ei yksinkertaisesti näy lähdekoodissa.

Siksi Seleniumilla tehtävä kaavinta on niin hyödyllistä. Olen viettänyt vuosia automaatiotyökalujen rakentamisen parissa ja kyllä, kaapinut enemmän verkkosivustoja kuin ehkä olisi ollut kohtuullista, joten voin sanoa tämän suoraan: Seleniumin hallitseminen on supervoima kaikille, jotka tarvitsevat ajantasaista ja dynaamista dataa. Tässä käytännönläheisessä Selenium-verkkokaavinnan oppaassa käyn läpi keskeiset vaiheet käyttöönotosta automaatioon ja näytän, miten Selenium yhdistetään Thunderbitiin jäsennellyn, suoraan vietävän datan saamiseksi. Olitpa bisnesanalyytikko, myynnin ammattilainen tai vain utelias Python-käyttäjä, saat mukaasi käytännön taitoja ja ehkä pari naurunpyrskähdystäkin (myönnetään: XPath-valitsimien debuggaus kehittää luonnetta).

Kokeile Thunderbitin AI Web Scraperia

Mikä on Selenium ja miksi sitä kannattaa käyttää verkkokaavinnassa?

selenium-dynamic-vs-static-web-scraping.png Aloitetaan perusteista. Selenium on avoimen lähdekoodin kehys, jonka avulla voit ohjata oikeaa verkkoselainta — kuten Chromea tai Firefoxia — koodin avulla. Ajattele sitä robottina, joka voi avata sivuja, klikata painikkeita, täyttää lomakkeita, vierittää ja jopa suorittaa JavaScriptiä aivan kuten ihminen. Tämä on iso juttu, koska useimmat modernit sivustot eivät näytä kaikkea dataansa heti. Sen sijaan ne lataavat sisältöä dynaamisesti, usein vasta sen jälkeen kun olet ollut vuorovaikutuksessa sivun kanssa.

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

Miksi tällä on merkitystä kaavinnassa? Perinteiset työkalut kuten BeautifulSoup tai Scrapy ovat loistavia staattiselle HTML:lle, mutta ne eivät pysty “näkemään” mitään, mitä JavaScript lataa ensimmäisen sivulatauksen jälkeen. Selenium puolestaan voi olla vuorovaikutuksessa sivun kanssa reaaliajassa, joten se sopii erinomaisesti esimerkiksi:

  • Tuotelistojen kaavintaan, jotka ilmestyvät vasta “Lataa lisää” -painikkeen klikkauksen jälkeen
  • Hintojen tai arvostelujen hakemiseen, jotka päivittyvät dynaamisesti
  • Kirjautumislomakkeiden, ponnahdusikkunoiden tai loputtoman vierityksen läpikäyntiin
  • Datan poimimiseen koontinäytöistä, kartoista tai muista interaktiivisista elementeistä

Lyhyesti: Selenium on luottotyökalusi aina, kun sinun täytyy kaapia dataa, joka ilmestyy vasta sivun latauduttua loppuun — tai käyttäjän toiminnon jälkeen.

Tärkeimmät vaiheet Pythonin Selenium-verkkokaavinnassa

Seleniumilla kaavinta tiivistyy kolmeen olennaiseen vaiheeseen:

VaiheMitä teetMiksi sillä on merkitystä
1. Ympäristön käyttöönottoAsenna Selenium, WebDriver ja Python-kirjastotSaat työkalut valmiiksi ja vältät käyttöönoton sudenkuopat
2. Elementtien paikannusEtsi haluamasi data ID:illä, luokilla, XPathilla jne.Kohdista oikeaan tietoon, vaikka JavaScript piilottaisi sen
3. Datan poiminta ja tallennusOta tekstit, linkit tai taulukot talteen ja tallenna CSV/Excel-muotoonMuunna raaka web-data sellaiseen muotoon, jota voit käyttää

Käydään jokainen vaihe läpi käytännön esimerkkien ja koodin avulla, jonka voit kopioida, muokata ja näyttää ylpeänä kavereillesi.

Vaihe 1: Pythonin Selenium-ympäristön käyttöönotto

Ensimmäinen askel: sinun täytyy asentaa Selenium ja selainajuri, kuten ChromeDriver Chromelle. Hyvä uutinen? Se on helpompaa kuin koskaan.

Asenna Selenium

Avaa päätelaite ja suorita:

pip install selenium

Hanki WebDriver

Vinkki: Selenium 4.6+:ssa voit käyttää Selenium Manageria ajureiden automaattiseen lataamiseen, joten sinun ei välttämättä tarvitse enää säätää PATH-muuttujien kanssa (ohjeet).

Ensimmäinen Selenium-skriptisi

Tässä nopea “hello world” Seleniumille:

from selenium import webdriver

driver = webdriver.Chrome()  # Tai webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()

Vianetsintävinkit:

  • Jos saat virheen “driver not found”, tarkista PATH tai käytä Selenium Manageria.
  • Varmista, että selain- ja ajuriversiot täsmäävät.
  • Jos käytössäsi on headless-palvelin (ei graafista käyttöliittymää), katso headless-tilan vinkit alta.

Vaihe 2: Verkkoelementtien paikantaminen datan poimintaa varten

Nyt hauskin osuus: kerrot Seleniumille, mitä dataa haluat. Sivustot koostuvat elementeistä — diveistä, span-elementeistä, taulukoista, mitä vain — ja Selenium tarjoaa useita tapoja löytää ne.

Yleiset paikannusstrategiat

  • By.ID: Etsi elementti yksilöllisen ID:n perusteella
  • By.CLASS_NAME: Etsi elementtejä CSS-luokan perusteella
  • By.XPATH: Käytä XPath-lausekkeita (erittäin joustava, mutta voi olla herkkä muutoksille)
  • By.CSS_SELECTOR: Käytä CSS-valitsimia (erinomainen monimutkaisiin kyselyihin)

Näin voit käyttää niitä:

from selenium.webdriver.common.by import By

# Etsi ID:n perusteella
price = driver.find_element(By.ID, "price").text

# Etsi XPathin perusteella
title = driver.find_element(By.XPATH, "//h1").text

# Etsi kaikki tuotekuvat CSS-valitsimella
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
    print(img.get_attribute("src"))

Vinkki: Käytä aina yksinkertaisinta ja vakainpa vaihtoehtoa (ID > class > CSS > XPath). Ja jos kaavittava sivu lataa dataa viiveellä, käytä eksplisiittisiä odotuksia:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
price_elem = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".price")))

Näin skriptisi ei kaadu, jos datan ilmestymisessä kestää hetki.

Vaihe 3: Datan poimiminen ja tallentaminen

Kun elementit on löytynyt, on aika napata data talteen ja tallentaa se hyödylliseen paikkaan.

Tekstin, linkkien ja taulukoiden poiminta

Oletetaan, että kaavit tuotetaulukkoa:

data = []
rows = driver.find_elements(By.XPATH, "//table/tbody/tr")
for row in rows:
    cells = row.find_elements(By.TAG_NAME, "td")
    data.append([cell.text for cell in cells])

Tallentaminen CSV:hen Pandasin avulla

import pandas as pd

df = pd.DataFrame(data, columns=["Nimi", "Hinta", "Varasto"])
df.to_csv("products.csv", index=False)

Voit tallentaa myös Exceliin (df.to_excel("products.xlsx")) tai jopa siirtää datan Google Sheetiin heidän API:nsä kautta.

Täysi esimerkki: tuotenimien ja hintojen kaavinta

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

driver = webdriver.Chrome()
driver.get("https://example.com/products")

data = []
products = driver.find_elements(By.CLASS_NAME, "product-card")
for p in products:
    title = p.find_element(By.CLASS_NAME, "title").text
    price = p.find_element(By.CLASS_NAME, "price").text
    data.append([title, price])

driver.quit()

df = pd.DataFrame(data, columns=["Otsikko", "Hinta"])
df.to_csv("products.csv", index=False)

Selenium vs. BeautifulSoup ja Scrapy: Mikä tekee Seleniumista ainutlaatuisen?

selenium-vs-traditional-scrapers-comparison.png Ratkaistaanpa kiista: milloin kannattaa käyttää Seleniumia, ja milloin BeautifulSoupin tai Scrapyn kaltainen työkalu on parempi valinta? Tässä nopea vertailu:

TyökaluParas käyttötarkoitusKäsittelee JavaScriptiä?Nopeus ja resurssien käyttö
SeleniumDynaamiset ja interaktiiviset sivustotKylläHitaampi, käyttää enemmän muistia
BeautifulSoupYksinkertainen staattisen HTML:n kaavintaEiErittäin nopea, kevyt
ScrapySuuren volyymin staattinen sivustonkaavintaRajoitetusti*Supernopea, asynkroninen, vähän RAM-muistia
ThunderbitKooditon liiketoiminnan kaavintaKyllä (AI)Nopea pieniin ja keskisuuriin töihin

*Scrapy voi käsitellä joitakin dynaamisia sisältöjä lisäosien avulla, mutta se ei ole sen vahvin alue (ScrapingBee).

Milloin käyttää Seleniumia:

  • Data ilmestyy vasta klikkauksen, vierityksen tai kirjautumisen jälkeen
  • Sinun täytyy olla vuorovaikutuksessa ponnahdusikkunoiden, loputtoman vierityksen tai dynaamisten koontinäyttöjen kanssa
  • Staattiset kaapijat eivät yksinkertaisesti riitä

Milloin käyttää BeautifulSoupia/Scrapyä:

  • Data on valmiiksi alkuperäisessä HTML:ssä
  • Sinun täytyy kaapia tuhansia sivuja nopeasti
  • Haluat minimoida resurssien käytön

Ja jos haluat ohittaa koodauksen kokonaan, Thunderbit antaa sinun kaapia dynaamisia sivustoja AI:n avulla — klikkaa vain “AI Suggest Fields” ja vie data Sheetiin, Notioniin tai Airtableen. (Lisää tästä alempana.)

Miten kaavitaan mikä tahansa verkkosivusto AI:n avulla Get Started Free

Verkkokaavintatehtävien automatisointi Seleniumilla ja Pythonilla

Ollaan rehellisiä: kukaan ei halua herätä kello 2 yöllä ajamaan kaavintascripttiä. Hyvä uutinen on, että voit automatisoida Selenium-työsi Pythonin ajoitustyökaluilla tai käyttöjärjestelmän ajastimella (kuten cron Linuxissa/Macissa tai Task Scheduler Windowsissa).

schedule-kirjaston käyttö

import schedule
import time

def job():
    # Kaavintakoodisi tähän
    print("Kaapitaan...")

schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Tai cronilla (Linux/Mac)

Lisää tämä crontabiin, jos haluat ajon joka tunti:

0 * * * * python /path/to/your_script.py

Automaatio-vinkit:

  • Aja Seleniumia headless-tilassa (katso alla), jotta vältät graafisen käyttöliittymän ponnahdukset.
  • Lokita virheet ja lähetä itsellesi ilmoitukset, jos jokin menee pieleen.
  • Sulje selain aina driver.quit()-komennolla resurssien vapauttamiseksi.

Tehosta tehokkuutta: vinkkejä nopeampaan ja luotettavampaan Selenium-kaavintaan

Selenium on tehokas, mutta se voi olla hidas ja resurssisyöppö, jos et ole tarkkana. Näin nopeutat toimintaa ja vältät yleiset murheet:

1. Aja headless-tilassa

Ei tarvitse katsella, kun Chrome avautuu ja sulkeutuu sata kertaa. Headless-tila ajaa selainta taustalla:

from selenium.webdriver.chrome.options import Options

opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)

2. Estä kuvat ja muu tarpeeton sisältö

Miksi ladata kuvia, jos kaavit vain tekstiä? Estä ne nopeuttaaksesi sivun latausta:

prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)

3. Käytä tehokkaita paikannustapoja

  • Suosi ID:itä tai yksinkertaisia CSS-valitsimia monimutkaisten XPathien sijaan.
  • Vältä time.sleep()-kutsuja — käytä sen sijaan eksplisiittisiä odotuksia (WebDriverWait).

4. Satunnaista viiveet

Lisää satunnaisia taukoja jäljitelläksesi ihmisen selaamista ja välttääksesi estot:

import random, time

time.sleep(random.uniform(1, 3))

5. Kierrätä user agentit ja IP-osoitteet tarvittaessa

Jos kaavit paljon dataa, vaihda user agent -merkkijonoa ja harkitse proxien käyttöä, jotta vältät yksinkertaiset bottisuojausten laukaisevat mekanismit.

6. Hallitse istuntoja ja virheitä

  • Käytä try/except-lohkoja käsitelläksesi puuttuvat elementit siististi.
  • Lokita virheet ja ota ruutukaappauksia vianetsintää varten.

Lisää optimointivinkkejä löydät BrowserStackin oppaasta.

Edistynyt: Seleniumin yhdistäminen Thunderbitiin jäsennellyn datan vientiä varten

Tässä kohtaa homma muuttuu todella mielenkiintoiseksi — etenkin jos haluat säästää aikaa datan siistimisessä ja viennissä.

Kun olet kaapinut raakadataa Seleniumilla, voit käyttää Thunderbitia seuraavasti:

  • Automaattinen kenttien tunnistus: Thunderbitin AI voi lukea kaapimasi sivut tai CSV:t ja ehdottaa sarakenimiä (“AI Suggest Fields”).
  • Alasivujen kaavinta: Jos sinulla on lista URL-osoitteita (kuten tuotesivuja), Thunderbit voi käydä jokaisella niistä ja rikastaa taulukkoasi lisätiedoilla — ilman ylimääräistä koodia.
  • Datan rikastaminen: Käännä, luokittele tai analysoi dataa lennossa.
  • Vienti minne tahansa: Vie tiedot yhdellä klikkauksella Google Sheetiin, Airtableen, Notioniin, CSV:hen tai Exceliin.

Työskentelyesimerkki:

  1. Käytä Seleniumia kaapataksesi listan tuote-URL-osoitteista ja otsikoista.
  2. Vie data CSV:ksi.
  3. Avaa Thunderbit, tuo CSV:si sisään ja anna AI:n ehdottaa kenttiä.
  4. Käytä Thunderbitin alasivukaavintaa hakeaksesi lisätietoja (kuten kuvia tai teknisiä tietoja) jokaiselta tuote-URL:ltä.
  5. Vie lopullinen, jäsennelty tietoaineistosi Sheetiin tai Notioniin.

Tämä yhdistelmä säästää tunteja manuaalista siivoamista ja antaa sinun keskittyä analyysiin eikä sotkuisen datan kanssa säätämiseen. Lue lisää tästä työnkulusta Thunderbitin Selenium-oppaasta.

Vie Selenium-data Thunderbitin AI:lla

Parhaat käytännöt ja vianetsintä Selenium-verkkokaavinnassa

Verkkokaavinta on vähän kuin kalastusta: joskus nappaa ison kalan, joskus taas sotkeutuu vesikasveihin. Näin pidät skriptisi luotettavina — ja eettisinä:

Parhaat käytännöt

  • Noudata robots.txt-tiedostoa ja sivuston käyttöehtoja: Tarkista aina, onko kaavinta sallittua.
  • Rajoita pyyntöjen määrää: Älä kuormita palvelimia liikaa — lisää viiveitä ja seuraa HTTP 429 -virheitä.
  • Käytä API-rajapintoja aina kun mahdollista: Jos data on saatavilla julkisen API:n kautta, käytä sitä — se on turvallisempaa ja luotettavampaa.
  • Kaavi vain julkista dataa: Vältä henkilökohtaisia tai arkaluonteisia tietoja ja huomioi tietosuojalait.
  • Käsittele ponnahdusikkunat ja CAPTCHA:t: Käytä Seleniumia ponnahdusikkunoiden sulkemiseen, mutta ole varovainen CAPTCHA:n kanssa — niitä on vaikea automatisoida.
  • Satunnaista user agentit ja viiveet: Tämä auttaa välttämään havaitsemista ja estoja.

Yleiset virheet ja korjaukset

VirheMitä se tarkoittaaMiten korjaat sen
NoSuchElementExceptionElementtiä ei löydyTarkista paikannin uudelleen; käytä odotuksia
Aikakatkaisun virheetSivun tai elementin lataus kesti liian kauanPidennä odotusaikaa; tarkista verkkoyhteyden nopeus
Ajurin ja selaimen versiot eivät täsmääSelenium ei saa käynnistettyä selaintaPäivitä ajuri- ja selainversiot
Istunto kaatuuSelain sulkeutui odottamattaKäytä headless-tilaa; hallitse resursseja

Lisää vianetsintävinkkejä löydät Thunderbitin Selenium-oppaasta.

Yhteenveto ja tärkeimmät opit

Dynaaminen verkkokaavinta ei ole enää vain kovan luokan kehittäjien juttu. Python Seleniumilla voit automatisoida minkä tahansa selaimen, olla vuorovaikutuksessa haastavimpien JavaScript-painotteisten sivustojen kanssa ja poimia datan, jota yrityksesi tarvitsee — olipa kyse myynnistä, tutkimuksesta tai vain uteliaisuuden tyydyttämisestä. Muista:

  • Selenium on oikea työkalu dynaamisille ja interaktiivisille sivustoille.
  • Kolme avainvaihetta: käyttöönotto, paikannus, poiminta ja tallennus.
  • Automatisoi skriptisi säännöllisiä datapäivityksiä varten.
  • Optimoi nopeus ja luotettavuus headless-tilalla, fiksuilla odotuksilla ja tehokkailla paikannuksilla.
  • Yhdistä Selenium Thunderbitiin helppoa datan jäsentelyä ja vientiä varten — etenkin jos haluat välttää taulukkolaskennan tuskan.

Valmis kokeilemaan itse? Aloita yllä olevista koodiesimerkeistä, ja kun olet valmis viemään kaavinnan seuraavalle tasolle, testaa Thunderbitia saadaksesi välittömän, AI-pohjaisen datan siistimisen ja viennin. Ja jos haluat lisää, tutustu Thunderbit-blogiin syväluotaavia artikkeleita, oppaita ja web-automatisoinnin uusimpia trendejä varten.

Hyviä kaavintoja — ja olkoot valitsimesi aina juuri sitä, mitä etsit.

Kokeile Thunderbitin AI Web Scraperia ilmaiseksi Get Started Free

UKK

1. Miksi minun pitäisi käyttää Seleniumia verkkokaavintaan BeautifulSoupin tai Scrapyn sijaan?
Selenium sopii erinomaisesti dynaamisten sivustojen kaavintaan, joissa sisältö latautuu käyttäjän toimien tai JavaScriptin suorittamisen jälkeen. BeautifulSoup ja Scrapy ovat nopeampia staattiselle HTML:lle, mutta ne eivät pysty vuorovaikutukseen dynaamisten elementtien kanssa tai simuloimaan klikkauksia ja vieritystä.

2. Miten saan Selenium-kaapijani toimimaan nopeammin?
Käytä headless-tilaa, estä kuvat ja tarpeettomat resurssit, käytä tehokkaita paikannustapoja ja lisää satunnaisia viiveitä ihmismäisen selaamisen jäljittelemiseksi. Katso lisää vinkkejä BrowserStackin oppaasta.

3. Voinko ajastaa Selenium-kaavintatehtävät toimimaan automaattisesti?
Kyllä! Käytä Pythonin schedule-kirjastoa tai käyttöjärjestelmäsi ajastinta (cron tai Task Scheduler) skriptien ajamiseen tietyin väliajoin. Kaavinnan automatisointi auttaa pitämään datan ajan tasalla.

4. Mikä on paras tapa viedä Seleniumilla kaavittu data?
Käytä Pandasia datan tallentamiseen CSV- tai Excel-muotoon. Edistyneempiä vientitapoja varten (Google Sheets, Notion, Airtable) tuo datasi Thunderbitiin ja käytä sen yhden klikkauksen vientiominaisuuksia.

5. Miten käsittelen ponnahdusikkunoita ja CAPTCHA:ita Seleniumissa?
Voit sulkea ponnahdusikkunat etsimällä niiden sulkupainikkeen ja klikkaamalla sitä. CAPTCHA:t ovat paljon vaikeampia — jos kohtaat sellaisen, harkitse manuaalista kiertotietä tai captcha-ratkaisupalvelua ja noudata aina sivuston käyttöehtoja.

Haluatko nähdä lisää kaavintaoppaita, AI-automaatio-vinkkejä tai tuoreimmat tiedot liiketoiminnan datatyökaluista? Tilaa Thunderbit-blogi tai katso YouTube-kanavamme käytännön demoja varten.

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
Scraping with seleniumSelenium web scraping tutorialPython selenium scrape website
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