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ötapaus | Mitä saat | Ketä se hyödyttää |
|---|---|---|
| FBA-tuotetutkimus | Löydä suuren kysynnän ja matalan kilpailun tuotteet BSR:n ja arvostelujen määrän perusteella | Amazon-myyjät, dropshippaajat |
| Kilpailukykyinen hinnoittelu | Seuraa hintamuutoksia kategorian suosituimmissa tuotteissa | Verkkokauppatiimit, hinnoitteluanalyytikot |
| Markkinatrendien seuranta | Tunnista nousevat kategoriat ja kausivaihtelut | Tuotepäälliköt, markkinatutkijat |
| Liidien generointi | Rakenna listoja myydyimmistä brändeistä ja niiden tuotelinjoista | Myyntitiimit, B2B-kontaktointi |
| Kilpailija-analyysi | Vertaa omia tuotteitasi kategorian kärkeen | Brä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ä:
| Kriteeri | requests + BS4 | Selenium | Scraping API (esim. Scrape.do) | Thunderbit (kooditon) |
|---|---|---|---|---|
| Käyttöönoton vaikeus | Keskitaso | Korkea (ajuri, selain) | Matala (API-avain) | Erittäin matala (Chrome-laajennus) |
| Käsittelee lazy loadingin | Ei | Kyllä (scrollauksen simulointi) | Kyllä (renderöity HTML) | Kyllä (AI hoitaa renderöinnin) |
| Anti-bot-suoja | Heikko (IP-estot) | Keskitaso (havaittavissa) | Vahva (kiertävät proxyt) | Vahva (pilvi + selain-tila) |
| Ylläpitotyö | Korkea (valitsimet rikkoutuvat) | Korkea (ajuripäivitykset + valitsimet) | Matala | Erittäin matala (AI mukautuu muutoksiin) |
| Kustannus | Ilmainen | Ilmainen | Maksullinen (per pyyntö) | Ilmainen taso + maksulliset paketit |
| Paras käyttöön | Kertaluonteiset scrappaukset, opettelu | JavaScript-painotteiset sivut, kirjautumista vaativat sivut | Skaala / tuotanto | Ei-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 jaa-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:
| Palveluntarjoaja | Kustannus / 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 Data | 5,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.

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.

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ä | Listaussivu | Tuotteen 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 listaussivun 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ää