Testasin 4 tapaa hakea Amazonin myydyimpiä tuotteita Pythonilla ja ...

Viimeksi päivitetty April 17, 2026

Viime viikonloppuna poltin läpi kokonaisen pannullisen kahvia, kun testasin neljää eri tapaa hakea Amazonin Best Sellers -sivun dataa. Kaksi toimi erinomaisesti, yksi oli vähällä saada IP-osoitteeni estetyksi, ja yksi vei kirjaimellisesti kaksi klikkausta. Tässä kaikki, mitä opin.

Amazon on valtava markkinapaikka — , ja Best Sellers Rank (BSR) -järjestelmä, joka päivittyy tunnin välein. Jos teet FBA-tuotetutkimusta, kilpailijoiden hintaseurantaa tai yrität löytää trendejä ennen muita, myydyimpien tuotteiden data on kullanarvoista.

Mutta miten saat tiedot ulos Amazonista ja taulukkolaskentaan? Siinä kohtaa homma muuttuu kiinnostavaksi. Testasin requests + BeautifulSoupia, Seleniumia, scraping APIa ja (meidän omaa kooditonta AI web scraperia) nähdäkseni, mikä tapa oikeasti toimii — ja mitkä jättävät sinut tuijottamaan CAPTCHA-sivua.

Mitä Amazonin myydyimmät tuotteet ovat ja miksi niistä kannattaa välittää?

Amazon Best Sellers Rank (BSR) on Amazonin reaaliaikainen tulostaulu, joka järjestää tuotteet myyntivolyymin perusteella kussakin kategoriassa. Se on kuin suosituimpien tuotteiden kilpailu, joka päivittyy tunneittain sekä viimeaikaisen että historiallisen myynnin perusteella. Amazon kuvaa sitä näin:

"Amazon Best Sellers -laskenta perustuu Amazonin myyntiin ja päivittyy tunneittain, jotta se heijastaa Amazonissa myytyjen tuotteiden viimeaikaista ja historiallista myyntiä." —

Best Sellers -sivu näyttää kunkin kategorian 100 parasta tuotetta kahdella 50 tuotteen sivulla. Sivu 1 kattaa sijoitukset #1–50 ja sivu 2 sijoitukset #51–100. Amazon on vahvistanut, että sivukatselut ja asiakasarvostelut EIVÄT vaikuta BSR:ään — se perustuu puhtaasti myyntiin.

Ketä tämä data kiinnostaa? Verkkokauppiaita, jotka etsivät FBA-tuotteita, myyntitiimejä, jotka rakentavat kilpailutiedustelua, operatiivisia tiimejä, jotka seuraavat hintatrendejä, ja markkinatutkijoita, jotka tarkkailevat kategorioiden kasvua. Kokemukseni mukaan jokainen, joka myy Amazonissa tai kilpailee sitä vastaan, päätyy lopulta tarvitsemaan tämän datan taulukkolaskennassa.

Miksi hakea Amazon Best Sellers -dataa Pythonilla?

Manuaalinen tuotehaku vie aikaa kuin huomaamatta. osoitti, että työntekijät käyttävät 9,3 tuntia viikossa pelkkään tiedon etsimiseen ja keräämiseen. Verkkokauppatiimeille se tarkoittaa tunteja, jotka kuluvat Amazon-sivuja klikkaillessa, tuotteiden nimiä ja hintoja kopioidessa ja niitä taulukkoon liitellessä — vain jotta sama rumba toistuu seuraavalla viikolla.

Tässä nopea katsaus käyttötapauksiin, joissa myydyimpien tuotteiden scrappaaminen on aidosti hyödyllistä:

KäyttötapausMitä saatKetä se hyödyttää
FBA-tuotetutkimusLöydä suuren kysynnän ja matalan kilpailun tuotteet BSR:n ja arvostelujen määrän perusteellaAmazon-myyjät, dropshippaajat
Kilpailukykyinen hinnoitteluSeuraa hintamuutoksia kategorian suosituimmissa tuotteissaVerkkokauppatiimit, hinnoitteluanalyytikot
Markkinatrendien seurantaTunnista nousevat kategoriat ja kausivaihtelutTuotepäälliköt, markkinatutkijat
Liidien generointiRakenna listoja myydyimmistä brändeistä ja niiden tuotelinjoistaMyyntitiimit, B2B-kontaktointi
Kilpailija-analyysiVertaa omia tuotteitasi kategorian kärkeenBrändipäälliköt, strategiatyöryhmät

Tuotto on todellinen: 2 700 kaupan alan ammattilaista kertoi, että AI-työkalut säästävät verkkokauppaosaajilta keskimäärin . Lisäksi automaattista hintaseurantaa käyttävät myyjät voittavat Buy Boxin , kun manuaalisesti seuraavilla osuus on 42 % — eli 37 %:n myynnin kasvu nopeampien hintareaktioiden ansiosta.

4 tapaa hakea Amazon Best Sellers -dataa Pythonilla: nopea vertailu

Ennen kuin mennään vaihe vaiheelta ohjeisiin, tässä vertailu rinnakkain — juuri sellainen, jonka olisin itse halunnut nähdä ennen testien aloittamista. Tämän pitäisi auttaa valitsemaan tilanteeseen sopiva menetelmä:

Kriteerirequests + BS4SeleniumScraping API (esim. Scrape.do)Thunderbit (kooditon)
Käyttöönoton vaikeusKeskitasoKorkea (ajuri, selain)Matala (API-avain)Erittäin matala (Chrome-laajennus)
Käsittelee lazy loadinginEiKyllä (scrollauksen simulointi)Kyllä (renderöity HTML)Kyllä (AI hoitaa renderöinnin)
Anti-bot-suojaHeikko (IP-estot)Keskitaso (havaittavissa)Vahva (kiertävät proxyt)Vahva (pilvi + selain-tila)
YlläpitotyöKorkea (valitsimet rikkoutuvat)Korkea (ajuripäivitykset + valitsimet)MatalaErittäin matala (AI mukautuu muutoksiin)
KustannusIlmainenIlmainenMaksullinen (per pyyntö)Ilmainen taso + maksulliset paketit
Paras käyttöönKertaluonteiset scrappaukset, opetteluJavaScript-painotteiset sivut, kirjautumista vaativat sivutSkaala / tuotantoEi-kehittäjille, nopeaan tutkimukseen, toistuvaan seurantaan

Jos haluat oppia Python-scrappaamisen perusteet, aloita menetelmästä 1 tai 2. Jos tarvitset tuotantotasoista luotettavuutta, valitse menetelmä 3. Jos haluat tulokset kahdella klikkauksella ilman koodia, hyppää suoraan menetelmään 4.

Ennen kuin aloitat

  • Vaikeustaso: Aloittelija–keskitaso (menetelmästä riippuen)
  • Aikaa kuluu: Noin 15 minuuttia Thunderbitilla, noin 45 minuuttia Python-menetelmillä
  • Tarvitset: Python 3.8+ (menetelmille 1–3), Chrome-selaimen, (menetelmälle 4) ja kohteena olevan Amazon Best Sellers -kategoriapolun

Menetelmä 1: Hae Amazon Best Sellers -dataa requests + BeautifulSoupilla

Tämä on kevyt ja aloittelijaystävällinen tapa — ei selaimen automaatiota, vain HTTP-pyyntöjä ja HTML:n jäsentämistä. Se opetti minulle myös eniten Amazonin scrappaamisen estomekanismeista.

Vaihe 1: Valmistele ympäristö

Asenna tarvittavat paketit:

1pip install requests beautifulsoup4 pandas

Sitten tuo kirjastot käyttöön:

1import requests
2from bs4 import BeautifulSoup
3import pandas as pd
4import random
5import time

Vaihe 2: Lähetä pyyntö realistisilla otsakkeilla

Amazon estää pyynnöt, jotka näyttävät boteilta. Peruspuolustus on User-Agent-otsake, joka jäljittelee oikeaa selainta. Tässä esimerkissä on joukko ajankohtaisia ja uskottavia User-Agent-merkkijonoja (lähde , maaliskuu 2026):

1USER_AGENTS = [
2    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
3    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/147.0.0.0 Safari/537.36",
4    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
5    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
6    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, kuten Gecko) Version/26.0 Safari/605.1.15",
7]
8headers = {"User-Agent": random.choice(USER_AGENTS)}
9url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
10response = requests.get(url, headers=headers)
11print(response.status_code)  # Should be 200

Jos saat 200-statuskoodin, olet perillä. Jos näet 503:n tai päädyt CAPTCHA-sivulle, Amazon on tunnistanut pyyntösi.

Vaihe 3: Jäsennä tuotetiedot BeautifulSoupilla

Tarkista Amazon-sivun HTML selaimesi DevToolsilla (hiiren oikea → Inspect). Tuotekonttien ID on gridItemRoot. Kunkin konttirakenteen sisältä löydät tuotteen nimen, hinnan, arvostelun ja URL-osoitteen.

1soup = BeautifulSoup(response.text, "html.parser")
2products = []
3for item in soup.find_all("div", id="gridItemRoot"):
4    title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
5    price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
6    link_tag = item.find("a", class_="a-link-normal")
7    title = title_tag.get_text(strip=True) if title_tag else "N/A"
8    price = price_tag.get_text(strip=True) if price_tag else "N/A"
9    url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
10    products.append({"Title": title, "Price": price, "URL": url})

Varoitus: _cDEzb_-alkuiset luokanimet ovat CSS-moduulihasheja, joita Amazon luo uudelleen säännöllisesti. gridItemRoot-ID ja a-link-normal-luokka ovat vakaampia, mutta tarkista valitsimet aina DevToolsilla ennen scrapperin ajamista.

Vaihe 4: Vie CSV-tiedostoon

1df = pd.DataFrame(products)
2df.to_csv("amazon_best_sellers.csv", index=False)
3print(f"Scraped {len(products)} products")

Mitä odottaa — ja mikä menee pieleen

Testissäni tämä menetelmä palautti noin 30 tuotetta 50:n sijaan. Se ei ole koodin virhe — vaan Amazonin lazy loadingia. Vain noin 30 tuotetta renderöityy sivun alkuperäisessä latauksessa; loput ilmestyvät vasta scrollauksen jälkeen, mikä vaatii JavaScriptin ajamista, johon requests ei pysty.

Muita rajoituksia:

  • IP-estot tulevat nopeasti ilman proxyjen kierrätystä (minut estettiin noin 15 nopean pyynnön jälkeen)
  • CSS-valitsimet rikkoutuvat, kun Amazon päivittää sivun asettelua — ja tätä tapahtuu säännöllisesti
  • Sivutus ei toimi suoraan ilman lisälogiikkaa

Python-scrappaamisen opetteluun tämä on loistava tapa. Tuotantokäytössä se on kuitenkin hauras.

Menetelmä 2: Hae Amazon Best Sellers -dataa Seleniumilla

Selenium ratkaisee lazy loading -ongelman ajamalla oikeaa selainta — asennus on raskaampi, mutta se nappaa kaikki 50 tuotetta per sivu.

Vaihe 1: Asenna Selenium

1pip install selenium pandas

Hyvä uutinen: Selenium 4.6+:sta alkaen et enää tarvitse webdriver-manageria. Selenium Manager hoitaa ajurien lataamisen automaattisesti.

1from selenium import webdriver
2from selenium.webdriver.chrome.options import Options
3from selenium.webdriver.common.by import By
4from selenium.webdriver.common.keys import Keys
5import time
6import pandas as pd
7options = Options()
8options.add_argument("--headless=new")
9options.add_argument("--window-size=1920,1080")
10options.add_argument("--disable-blink-features=AutomationControlled")
11driver = webdriver.Chrome(options=options)

--headless=new-lippu (esitelty Chromessa 109+) käyttää samaa renderöintiputkea kuin näkyvä Chrome, mikä tekee tunnistamisesta Amazonille vaikeampaa.

Vaihe 2: Vieritä lazy loadingin ohi

Tämä on se vaihe, jonka vuoksi Selenium on asennuksen vaivan arvoinen. Amazon Best Sellers lataa aluksi vain noin 30 tuotetta — loput tulevat näkyviin scrollauksen jälkeen.

1def scroll_page(driver, scrolls=5, delay=2):
2    for _ in range(scrolls):
3        driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
4        time.sleep(delay)
5driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
6time.sleep(3)
7scroll_page(driver)

Scrollauksen jälkeen kaikkien 50 tuotteen pitäisi olla DOMissa. Huomasin, että viisi Page Down -vieritystä kahden sekunnin viiveellä riitti, mutta saatat joutua säätämään tätä yhteysnopeutesi mukaan.

Vaihe 3: Poimi tuotetiedot

1items = driver.find_elements(By.ID, "gridItemRoot")
2products = []
3for item in items:
4    try:
5        title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
6    except:
7        title = "N/A"
8    try:
9        price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
10    except:
11        price = "N/A"
12    try:
13        url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
14    except:
15        url = "N/A"
16    products.append({"Title": title, "Price": price, "URL": url})

Jokaisen haun ympärillä kannattaa käyttää try/except-rakennetta — jotkin tuotteet voivat olla loppu tai niistä voi puuttua kenttiä, etkä halua yhden virheellisen elementin kaatavan koko prosessia.

Vaihe 4: Käsittele sivutus

Amazon jakaa 100 myydyintä tuotetta kahdelle sivulle eri URL-rakenteilla:

1urls = [
2    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
3    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
4]
5all_products = []
6for url in urls:
7    driver.get(url)
8    time.sleep(3)
9    scroll_page(driver)
10    # ... extract products as above ...
11    all_products.extend(products)
12driver.quit()

Mitä odottaa

Testissäni Selenium nappasi kaikki 50 tuotetta per sivu — selvä voitto requests + BS4 -menetelmään verrattuna. Haittapuoli: se vei noin 45 sekuntia per sivu (sisältäen scrollausviiveet), ja sain silti eston, kun ajoin sitä liian monta kertaa ilman proxyjen kierrätystä. Selenium on myös Amazonin bottitunnistuksen havaittavissa, vaikka käytössä olisi anti-detection-liput — vakavaan skaalaukseen tarvitset lisää keinoja (katso Anti-Ban Playbook alta).

Muita kipukohtia:

  • WebDriver-version yhteensopimattomuuksia ilmenee yhä joskus, vaikka Selenium Manager on vähentänyt niitä paljon
  • CSS-valitsimia täytyy päivittää aina, kun Amazon muuttaa DOM-rakennettaan
  • Muistin käyttö on korkea — jokainen selaininstanssi vie 200–400 MB RAM-muistia

Menetelmä 3: Hae Amazon Best Sellers -dataa scraping APIlla

Scraping APIt ovat "anna jonkun muun hoitaa vaikeat osat" -lähestymistapa. Palvelut kuten Scrape.do, Oxylabs ja ScrapingBee hoitavat proxyjen kierrätyksen, JavaScript-renderöinnin ja anti-bot-suojauksen — sinä lähetät vain URL:n ja saat takaisin HTML:n tai JSONin.

Miten se toimii

Lähetät kohde-URL:n API-päätepisteeseen. API renderöi sivun omassa infrastruktuurissaan oikealla selaimella, kierrättää proxyt, käsittelee CAPTCHA:t ja palauttaa puhtaan HTML:n. Tämän jälkeen jäsennät palautetun HTML:n BeautifulSoupilla aivan kuten ennenkin.

Vaihe 1: Lähetä pyyntö API:n kautta

Tässä esimerkki Scrape.do-palvelulla (hinnat alkavat 29 dollarista kuukaudessa 150 000 krediitille, 1 krediitti = 1 pyyntö renderöinnistä riippumatta):

1import requests
2from bs4 import BeautifulSoup
3api_token = "YOUR_API_TOKEN"
4target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
5api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
6response = requests.get(api_url)
7soup = BeautifulSoup(response.text, "html.parser")

Tästä eteenpäin jäsentäminen on samaa kuin menetelmässä 1 — samat valitsimet, sama poimintalogiikka.

Hinnoittelun todellisuus

Tässä ovat tärkeimpien API-palveluiden hinnat per 1 000 Amazon-pyyntöä parhaalla saatavilla olevalla hinnalla:

PalveluntarjoajaKustannus / 1 000 pyyntöäHuomioita
Scrape.do~0,19 $Kiinteä hinta, ei krediittikertoimia
Oxylabs~1,80 $5x kerroin JavaScript-renderöinnissä
ScrapingBee~4,90 $5–25x kertoimet premium-ominaisuuksille
Bright Data5,00 $+Laajin data (686 kenttää/tuote), mutta hitain (~66 s/pyyntö)

Hyvät ja huonot puolet

Hyvät puolet: Korkea luotettavuus ( Amazonissa parhailla tarjoajilla), ei ajurien ylläpitoa, anti-bot-suoja hoituu automaattisesti, skaalautuu hyvin.

Huonot puolet: Maksat per pyyntö (kustannukset kasvavat skaalassa), sinun täytyy silti kirjoittaa jäsennyskoodi, ja CSS-valitsimien muutokset voivat yhä rikkoa scrappauksen. 100 000 sivun kuukausivolyymilla kokonaiskustannusvertailu on dramaattinen: oman ratkaisun rakentaminen maksaa noin — eli 71 % säästö.

Käännekohta on yleensä 500 000–1 000 000 pyyntöä kuukaudessa. Sitä pienemmillä määrillä API:n tuoma ajansäästö voittaa kustannukset kirkkaasti.

Menetelmä 4: Hae Amazon Best Sellers -dataa Thunderbitilla (ilman Pythonia)

Täysi läpinäkyvyys: työskentelen Thunderbitilla, joten lue tämä osio siinä valossa. Sanottuna myös rehellisesti testasin kaikki neljä tapaa peräkkäin, ja ero tiedon saamisessa oli todella huomattava.

on AI web scraper, joka toimii Chrome-laajennuksena. Perusidea: sen sijaan, että kirjoittaisit CSS-valitsimia tai Python-koodia, AI lukee sivun ja päättelee, mitä dataa siitä kannattaa poimia. Amazon Best Sellersiin Thunderbitissa on valmiita malleja, jotka toimivat yhdellä klikkauksella.

Vaihe 1: Asenna Thunderbit Chrome -laajennus

Siirry ja klikkaa "Add to Chrome". Luo ilmainen tili — ilmaisella tasolla saat riittävästi krediittejä testaukseen.

Vaihe 2: Avaa Amazon Best Sellers -sivu

Avaa mikä tahansa Amazon Best Sellers -kategoriansivu Chromessa. Esimerkiksi: https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/

Vaihe 3: Napsauta "AI Suggest Fields"

Avaa Thunderbitin sivupalkki ja klikkaa "AI Suggest Fields". AI analysoi sivun rakenteen ja ehdottaa sarakkeita: Product Name, Price, Rating, Image URL, Vendor, Product URL ja Rank. Testissäni se tunnisti kaikki olennaiset kentät noin kolmessa sekunnissa.

amazon-thunderbit-product-data.webp

Voit nimetä sarakkeita uudelleen, poistaa niitä tai lisätä uusia. Voit jopa lisätä kenttäkohtaisia omia AI-kehotteita — esimerkiksi "luokittele Electronics/Apparel/Home" lisätäksesi jokaiselle tuotteelle kategoriatagin.

Vaihe 4: Klikkaa "Scrape"

Paina "Scrape"-painiketta. Thunderbit täyttää rakenteisen taulukon kaikilla sivulla olevilla tuotetiedoilla. Pilvitilassa se käsittelee jopa 50 sivua kerralla rinnakkain ja hoitaa lazy loadingin sekä sivutuksen automaattisesti.

Vaihe 5: Vie tiedot ilmaiseksi

Klikkaa "Export" ja valitse kohde: Excel, Google Sheets, Airtable tai Notion. Kaikki viennit ovat ilmaisia kaikissa paketeissa — ei piilokuluja.

product-data-export.webp

Koko prosessi vei minulta noin 90 sekuntia siitä hetkestä, kun avasin sivun, siihen hetkeen kun minulla oli valmis taulukko. Vertailun vuoksi menetelmä 1 vei noin 20 minuuttia (sisältäen lazy loading -ongelman selvittämisen), menetelmä 2 noin 35 minuuttia (sisältäen Seleniumin käyttöönoton) ja menetelmä 3 noin 15 minuuttia (sisältäen API-tilin luomisen).

Miksi Thunderbit toimii Amazonissa hyvin

Koska AI lukee sivun aina tuoreesti, se mukautuu automaattisesti asettelumuutoksiin — CSS-valitsimia ei tarvitse ylläpitää. Tämä vastaa suoraan scrappausfoorumien yleisimpään valitukseen: "Perus web scraper ei riitä, elementtimuutoksia varten täytyy lisätä hirveä määrä varmistuksia." Kun Amazon muuttaa DOMia (mikä tapahtuu säännöllisesti), sinun ei tarvitse päivittää mitään.

Pilviscrappaustila hoitaa proxyjen kierrätyksen, renderöinnin ja anti-bot-suojauksen läpinäkyvästi. Käyttäjille, jotka haluavat ratkaisun, joka "vain toimii", tämä poistaa koko estämisongelman.

Anti-Ban Playbook: näin vältät Amazonin estot

Amazonin bottitunnistus on aggressiivinen. Sain testien aikana IP-osoitteeni tilapäisesti estetyksi, ja samaa raportoidaan foorumeilla: "virheitä kaikkialla, Amazon alkoi jopa ohjata minut etusivulle." Jos lähdet Python-reitille (menetelmät 1–3), tämä osio on tärkeä.

Tässä kerroksittainen strategia peruskeinosta edistyneempään:

1. Vaihtele User-Agent-merkkijonoja

Saman User-Agentin lähettäminen toistuvasti on punainen lippu. Käytä menetelmän 1 koodiesimerkin 5+ merkkijonon joukkoa ja valitse yksi satunnaisesti joka pyyntöön:

1headers = {"User-Agent": random.choice(USER_AGENTS)}

2. Lisää satunnaiset viiveet pyyntöjen väliin

Tasaiset viiveet ovat tunnistettavia (mallit). Satunnaiset ovat turvallisempia:

1time.sleep(random.uniform(2, 5))

Huomasin, että 2–5 sekunnin viiveet pyyntöjen välillä pitivät minut tutkan alla pienissä erissä (alle 50 pyyntöä). Suuremmissa ajoissa nosta viive 3–7 sekuntiin.

3. Käytä proxyjen kierrätystä

Tämä on se tärkein. näyttävät, että residential-proxyt onnistuvat Amazonissa keskimäärin noin 94 %:ssa tapauksista, kun datakeskusproxyilla onnistumisaste on noin 59 % — ero on 35 prosenttiyksikköä. Amazonin tunnistusjärjestelmä sisältää TLS-fingerprintingin, käyttäytymisanalyysin ja IP-kohtaiset nopeusrajoitukset, joten tavalliset datakeskus-IP:t paljastuvat sekunneissa.

Residential-proxyt ovat kalliimpia (2–12 $/GB palveluntarjoajasta riippuen), mutta ne ovat huomattavasti luotettavampia. Esimerkki:

1proxies = {
2    "http": "http://user:pass@residential-proxy.example.com:8080",
3    "https": "http://user:pass@residential-proxy.example.com:8080"
4}
5response = requests.get(url, headers=headers, proxies=proxies)

4. Koveta selaimen fingerprinttiä (Selenium)

1options.add_argument('--disable-blink-features=AutomationControlled')
2options.add_experimental_option("excludeSwitches", ["enable-automation"])
3options.add_experimental_option('useAutomationExtension', False)
4# After driver init, remove navigator.webdriver flag
5driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
6    'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
7})

5. Hallitse sessioita ja evästeitä

Evästeiden säilyttäminen pyyntöjen välillä tekee scrapperista enemmän oikean käyttäjän kaltaisen:

1session = requests.Session()
2# Visit homepage first to get realistic cookies
3session.get("https://www.amazon.com", headers=headers)
4time.sleep(2)
5# Then scrape your target page
6response = session.get(target_url, headers=headers)

6. Milloin kannattaa ohittaa koko vaiva

Jos et halua hallita mitään tästä itse, Thunderbitin pilviscrappaaminen hoitaa proxyjen kierrätyksen, renderöinnin ja anti-bot-suojauksen läpinäkyvästi. Myös scraping API:t hoitavat suurimman osan näistä asioista valmiiksi. Omasta kokemuksestani anti-ban-ongelmien selvittelyyn kuluu usein enemmän aikaa kuin itse scrappauskoodin kirjoittamiseen — joten "vain toimii" -lähestymistavalla on oikea ROI.

Sivujen rikastaminen: tuotesivujen scrappaaminen syvempää dataa varten

Best Sellers -listaus näyttää vain perustiedot — nimen, hinnan, arvostelun, sijoituksen. Mutta todellinen arvo FBA-tutkimuksessa löytyy yksittäisiltä tuotesivuilta. Tässä näet, mitä menetät, jos haet vain listauksen tiedot:

KenttäListaussivuTuotteen yksityiskohtasivu
Tuotteen nimi
Hinta
Arvostelu
BSR-sijoitus✅ (myös alikategoriat)
Brändi
ASIN
Ensimmäinen saatavuuspäivä
Mitat/paino
Myyjien määrä
Ominaisuudet bullet-listana
Buy Boxin haltija

Erityisen arvokas on kenttä "Date First Available" — se kertoo, kuinka kauan tuote on ollut markkinoilla, mikä on tärkeä kilpailusignaali. Myös myyjien määrä ja Buy Boxin haltija auttavat arvioimaan, onko tuotteen nicheyn järkevää lähteä mukaan (jos Amazon itse omistaa yli 30 % Buy Box -osuudesta, kilpailu on erittäin vaikeaa).

Python-lähestymistapa: silmukoi tuote-URLien läpi

Kun olet kerännyt tuote-URLit listaussivulta, käy ne läpi yksi kerrallaan viiveen kanssa:

1for product in products:
2    time.sleep(random.uniform(3, 6))
3    detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
4    detail_soup = BeautifulSoup(detail_response.text, "html.parser")
5    # Extract brand
6    brand_tag = detail_soup.find("a", id="bylineInfo")
7    product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
8    # Extract ASIN from page source or URL
9    # Extract Date First Available from product details table
10    # ... additional fields ...

Reilu varoitus: 100 yksittäisen tuotesivun lataaminen kasvattaa estoriskiä merkittävästi. Varaa mukaan proxyjen kierrätys ja pidemmät viiveet.

Thunderbit-lähestymistapa: tuotesivujen scrappaaminen yhdellä klikkauksella

Kun olet hakenut listaus­sivun taulukoksi, klikkaa Thunderbitissa "Scrape Subpages". AI käy jokaisen tuote-URLin läpi ja rikastaa taulukon lisäsarakkeilla — brändi, ASIN, tekniset tiedot, ominaisuudet — automaattisesti. Ei lisäkoodia, ei valitsimia, ei käyttöönottoa. Tämä on erityisen hyödyllistä verkkokauppatiimeille, jotka tarvitsevat kokonaiskuvan hankintapäätöksiin mutta eivät halua kirjoittaa ja ylläpitää tuotesivun jäsentäjää.

Toistuvien scrappien automatisointi: seuraa myydyimpiä tuotteita ajan myötä

Kertaluonteinen scrapaus on hyödyllinen, mutta jatkuva seuranta on se, missä oikea kilpailuetu syntyy. Se, että seuraat, mitkä tuotteet nousevat ja laskevat, tunnistat trendit aikaisin ja tarkkailet hintamuutoksia viikkojen tai kuukausien aikana — siinä erotetaan satunnainen tutkimus datalähtöisestä päätöksenteosta.

Python-lähestymistapa: ajoitus cronilla

Linuxissa ja Macissa voit ajastaa Python-skriptisi cronilla. Tässä crontab-rivi päivittäiseen klo 8 scrappaukseen:

10 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Viikoittaiseen maanantain klo 9 scrappaukseen:

10 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Windowsissa voit käyttää Task Scheduleria samaan tarkoitukseen. Jos haluat aina päällä olevan ajastuksen ilman, että läppärin tarvitsee olla käynnissä, voit ottaa käyttöön VPS:n tai AWS Lambdan — mutta se lisää infrastruktuurin monimutkaisuutta.

Lisää lokitus ja virheilmoitukset, jotta epäonnistuneet ajot huomataan. Mikään ei ole pahempaa kuin huomata kahden viikon päästä, että scraper on hajonnut hiljaa.

Thunderbit-lähestymistapa: Scheduled Scraper arkikielellä

Thunderbitin Scheduled Scraper antaa sinun kuvata aikavälin luonnollisella kielellä — kirjoita "every Monday at 9am" tai "every day at 8am", ja AI tulkitsee aikataulun. Scrappaukset ajetaan Thunderbitin pilvipalvelimilla (selaimen tai tietokoneen ei tarvitse olla päällä), ja data viedään automaattisesti Google Sheetsiin tai Airtableen. Tämä luo live-seurantapaneelin ilman palvelin- tai DevOps-hallintaa — ihanteellinen operatiivisille tiimeille, jotka tarvitsevat jatkuvaa näkyvyyttä ilman teknistä ylläpitokuormaa.

Amazon-scrappauksen juridiset ja eettiset näkökohdat

En ole juristi, eikä tämä ole oikeudellista neuvontaa. Mutta oikeudellisen maiseman sivuuttaminen scrappausoppaassa olisi vastuutonta — foorumikäyttäjät nostavat ToS-huolia esiin, ja syystäkin.

Amazonin robots.txt: Vuonna 2026 Amazonin robots.txt sisältää yli 80 tarkkaa Disallow-polkuja, mutta /gp/bestsellers/ EI ole nimenomaisesti estetty tavallisilta user agenteilta. Sen sijaan yli 35 AI-spesifistä user agentia (ClaudeBot, GPTBot, Scrapy jne.) saa yleisen Disallow: /. Erityisen eston puuttuminen ei tarkoita, että Amazon hyväksyisi scrappauksen.

Amazonin käyttöehdot: Amazonin (päivitetty toukokuussa 2025) kieltää nimenomaisesti "mitä tahansa automaattista prosessia tai teknologiaa käyttämästä Amazonin verkkosivuston minkään osan käyttöön, hankkimiseen, kopiointiin tai seurantaan" ilman kirjallista lupaa. Tämä ei ole teoreettista — Amazon marraskuussa 2025 luvattomasta automatisoidusta käytöstä ja sai alustavan kiellon.

hiQ v. LinkedIn -ennakkotapaus: Tapauksessa (yhdeksäs piiri, 2022) oikeus katsoi, että julkisesti saatavilla olevan datan scrappaaminen ei todennäköisesti riko Computer Fraud and Abuse Actia. Mutta hiQ päätyi lopulta sovintoon ja suostui lopettamaan scrappauksen — CFAA-voitto ei suojaa sopimusrikkomusvaateilta.

Käytännön ohjeet:

  • Hae vain julkisesti saatavilla olevaa dataa (hinnat, BSR, tuotenimet — ei henkilötietoja)
  • Noudata nopeusrajoja äläkä kuormita palvelimia liikaa
  • Käytä dataa lailliseen kilpailuanalyysiin
  • Kysy omalta juristiltasi ennen laajamittaista scrappausta
  • Huomaa, että on nyt kattava tietosuojalainsäädäntö

Thunderbitin pilviscrappaus käyttää tavallisia selainta muistuttavia pyyntömalleja, mutta sinun kannattaa aina varmistaa lainmukaisuus oman lakiasiantuntijasi kanssa.

Minkä menetelmän valitsisit? Nopea päätöspuu

Lyhyesti:

  • "Opettelen Pythonia ja haluan viikonloppuprojektin." → Menetelmä 1 (requests + BeautifulSoup). Opit paljon HTTP-pyynnöistä, HTML:n jäsentämisestä ja Amazonin botintunnistuksesta.
  • "Minun täytyy scrapata JavaScript-painotteisia sivuja tai kirjautuneita sessioita." → Menetelmä 2 (Selenium). Se on raskaampi, mutta käsittelee dynaamista sisältöä.
  • "Ajan tuotantoscrappeja mittakaavassa." → Menetelmä 3 (Scraping API). Anna jonkun muun hoitaa proxyt ja renderöinti. suosii API-ratkaisuja alle 500K pyynnön kuukausivolyymilla.
  • "En ole kehittäjä ja haluan datan kahdessa minuutissa." → Menetelmä 4 (). Ei koodia, ei valitsimia, ei ylläpitoa.
  • "Tarvitsen jatkuvaa seurantaa ilman palvelinhallintaa." → Thunderbit Scheduled Scraper. Aseta kerran ja unohda.

Lopuksi ja tärkeimmät opit

Viikonlopun testauksen jälkeen nämä asiat jäivät käteen:

requests + BeautifulSoup on erinomainen oppimiseen, mutta lazy loading -rajoitus (vain noin 30/50 tuotetta) ja hauraat CSS-valitsimet tekevät siitä epäkäytännöllisen tuotantoon.

Selenium ratkaisee lazy loadingin ja nappaa kaikki 50 tuotetta sivulta, mutta se on hidas, muistisyöppö ja Amazonin bot-suojan havaittavissa.

Scraping APIt tarjoavat parhaan luotettavuuden tuotantotasoiseen scrappaukseen — Amazonissa — mutta kulut kasvavat ja jäsennyskoodia täytyy silti kirjoittaa.

Thunderbit toi datan ulos nopeimmin selvästi muita nopeammin. AI hoitaa asettelumuutokset, lazy loadingin, sivutuksen ja anti-bot-suojauksen ilman asetusten säätämistä. Ei-teknisille käyttäjille tai tiimeille, jotka tarvitsevat toistuvaa dataa ilman DevOps-ylikuormaa, se on käytännöllisin vaihtoehto.

Suurin oppi? Amazonin bot-suojaukset ja toistuvat asettelumuutokset tarkoittavat, että ylläpitovapaa ratkaisu säästää pitkällä aikavälillä eniten aikaa. Jokainen tunti, jonka käytät rikkoutuneiden valitsimien ja proxyjen kierrätyksen debuggaamiseen, on tunti pois varsinaisesta analyysista.

Haluatko kokeilla kooditonta lähestymistapaa? antaa sinulle riittävästi krediittejä muutaman Best Sellers -kategorian scrappaamiseen ja tulosten näkemiseen itse. Suosit Python-reittiä? Yllä olevista koodiesimerkeistä pääset hyvin alkuun. Joka tapauksessa saat Amazonin myydyimpien tuotteiden datan taulukkoon sen sijaan, että tuijottaisit selaimen välilehteä.

Lisää web scrappausmenetelmistä löydät oppaistamme , ja . Voit myös katsoa vaiheittaisia läpikäyntejä .

Lue lisää

Sisällysluettelo

Kokeile Thunderbitiä

Poimi liidejä ja muuta dataa vain 2 klikkauksella. AI:n voimalla.

Hanki Thunderbit Se on ilmaista
Poimi dataa AI:n avulla
Siirrä data helposti Google Sheetsiin, Airtableen tai Notioniin
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week