Förra helgen gick jag igenom en hel kaffebryggare när jag försökte skrapa Amazons Best Sellers-sida på fyra olika sätt. Två metoder fungerade riktigt bra, en var nära att få min IP blockerad, och en tog bokstavligen ett enda klick. Här är allt jag lärde mig.
Amazon är en gigantisk marknadsplats — 600 miljoner produktlistningar, över 310 miljoner aktiva kundkonton och ett Best Sellers Rank-system (BSR) som uppdateras varje timme. Om du jobbar med FBA-produktforskning, konkurrensanalys av priser eller bara vill upptäcka trender innan konkurrenterna gör det, är Best Seller-data rena guldgruvan.
Men att få ut den datan från Amazon och in i ett kalkylblad? Det är där det blir intressant. Jag testade requests + BeautifulSoup, Selenium, ett scraping-API och Thunderbit (vår egen no-code AI-webbskrapare) för att se vilken metod som faktiskt levererar — och vilka som lämnar dig framför en CAPTCHA-sida.
Vad är Amazon Best Sellers, och varför ska du bry dig?
Amazon Best Sellers Rank (BSR) är Amazons topplista i realtid, där produkter rankas efter försäljningsvolym inom varje kategori. Tänk det som en popularitetstävling som uppdateras varje timme, baserat på både färska och historiska försäljningssiffror. Amazon beskriver det så här:
"The Amazon Best Sellers calculation is based on Amazon sales and is updated hourly to reflect recent and historical sales of every item sold on Amazon." — Amazon Seller Central
Best Sellers-sidan visar de 100 bästa produkterna per kategori, uppdelade på två sidor med 50 produkter vardera. Sida 1 täcker plats #1–50, sida 2 täcker #51–100. Amazon har bekräftat att sidvisningar och kundrecensioner INTE påverkar BSR — det styrs helt av försäljning.
Vem har nytta av den här datan? E-handlare som letar produkter för FBA, säljteam som bygger konkurrensinsikter, operations-team som bevakar pristrender och marknadsanalytiker som följer kategoritillväxt. Enligt min erfarenhet behöver alla som säljer på Amazon eller konkurrerar med Amazon förr eller senare få ut den här datan i ett kalkylblad.
Varför skrapa Amazon Best Sellers med Python?
Manuell produktresearch är en riktig tidstjuv. En McKinsey-studie visade att anställda lägger 9,3 timmar i veckan bara på att leta efter och samla in information. För e-handelsteam betyder det timmar av klickande genom Amazon-sidor, kopiering av produktnamn och priser och inklistring i kalkylblad — bara för att göra om allt igen nästa vecka.
Här är en snabb översikt över användningsfall som gör det värt att skrapa Best Sellers:
| Användningsfall | Vad du får ut | Vem det gynnar |
|---|---|---|
| Produktforskning för FBA | Identifiera produkter med hög efterfrågan och låg konkurrens via BSR och antal recensioner | Amazon-säljare, dropshippers |
| Konkurrensprissättning | Följ prisförändringar bland topprankade produkter i din kategori | E-handelsteam, prisanalytiker |
| Bevaka marknadstrender | Upptäck växande kategorier och säsongsförändringar | Produktchefer, marknadsanalytiker |
| Leadgenerering | Bygg listor över bästsäljande varumärken och deras produktlinjer | Säljteam, B2B-outreach |
| Konkurrentanalys | Jämför dina produkter med kategoriledarna | Varumärkesansvariga, strategiteam |
Avkastningen är verklig: en Salesforce-undersökning bland 2 700 commerce-proffs visade att AI-verktyg sparar e-handelsproffs i snitt 6,4 timmar per vecka. Och säljare som använder automatiserad prisbevakning vinner Buy Box 67% av tiden, jämfört med 42% för manuella bevakare — en försäljningsökning på 37% driven av snabbare reaktioner på prisförändringar.
4 sätt att skrapa Amazon Best Sellers med Python: en snabb jämförelse
Innan vi går in i steg-för-steg-guiderna kommer här en jämförelse sida vid sida som jag önskar att jag hade haft innan jag började testa. Tabellen hjälper dig att välja rätt metod för din situation:
| Kriterium | requests + BS4 | Selenium | Scraping API (t.ex. Scrape.do) | Thunderbit (No-Code) |
|---|---|---|---|---|
| Svårighetsgrad vid uppsättning | Medel | Hög (driver, webbläsare) | Låg (API-nyckel) | Mycket låg (Chrome-tillägg) |
| Hanterar lazy loading | Nej | Ja (scroll-simulering) | Ja (renderad HTML) | Ja (AI hanterar rendering) |
| Motståndskraft mot bot-skydd | Låg (IP-blockering) | Medel (går att upptäcka) | Hög (roterande proxyservrar) | Hög (moln- och webbläsarlägen) |
| Underhållsbehov | Högt (selectors går sönder) | Högt (driver-uppdateringar + selectors) | Lågt | Mycket lågt (AI anpassar sig till layoutändringar) |
| Kostnad | Gratis | Gratis | Betald (per anrop) | Gratis nivå + betalda planer |
| Bäst för | Engångsskrapning, lärande | JS-tunga sidor, inloggning krävs | Skala / produktion | Icke-utvecklare, snabb research, återkommande bevakning |
Om du vill lära dig grunderna i Python-skrapning, börja med metod 1 eller 2. Behöver du tillförlitlighet i produktionsskala, välj metod 3. Vill du ha resultat med ett enda klick utan att skriva kod, hoppa direkt till metod 4.
Innan du börjar
- Svårighetsgrad: Nybörjare till medel (beroende på metod)
- Tidsåtgång: Cirka 15 minuter för Thunderbit, cirka 45 minuter för Python-metoderna
- Det du behöver: Python 3.8+ (för metod 1–3), Chrome-webbläsare, Thunderbit Chrome Extension (för metod 4) och en URL till en Amazon Best Sellers-kategori
Metod 1: Skrapa Amazon Best Sellers med requests + BeautifulSoup
Det här är den lätta och nybörjarvänliga metoden — ingen webbläsarautomatisering, bara HTTP-anrop och HTML-parsning. Den lärde mig också mest om Amazons anti-skrapningsskydd.
Steg 1: Sätt upp din miljö
Installera nödvändiga paket:
pip install requests beautifulsoup4 pandas
Sätt sedan upp dina imports:
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import time
Steg 2: Skicka en förfrågan med realistiska headers
Amazon blockerar förfrågningar som ser ut som botar. Det mest grundläggande skyddet är en User-Agent-header som efterliknar en riktig webbläsare. Här är ett exempel med en uppsättning aktuella, realistiska User-Agent-strängar (hämtade från Geekflare, mars 2026):
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",
]
headers = {"User-Agent": random.choice(USER_AGENTS)}
url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
response = requests.get(url, headers=headers)
print(response.status_code) # Bör vara 200
Om du får statuskod 200 är du inne. Om du får 503 eller skickas vidare till en CAPTCHA-sida har Amazon flaggat din förfrågan.
Steg 3: Tolka produktdata med BeautifulSoup
Inspektera Amazon-sidans HTML i webbläsaren med DevTools (högerklick → Inspektera). Produktcontainrarna använder ID:t gridItemRoot. Inuti varje container hittar du produktnamn, pris, betyg och URL.
soup = BeautifulSoup(response.text, "html.parser")
products = []
for item in soup.find_all("div", id="gridItemRoot"):
title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
link_tag = item.find("a", class_="a-link-normal")
title = title_tag.get_text(strip=True) if title_tag else "N/A"
price = price_tag.get_text(strip=True) if price_tag else "N/A"
url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
products.append({"Title": title, "Price": price, "URL": url})
Varning: Klassnamn med prefixet
_cDEzb_är CSS-modul-hashar som Amazon återskapar med jämna mellanrum. ID:tgridItemRootoch klassena-link-normalär mer stabila, men kontrollera alltid selectors i DevTools innan du kör din scraper.
Steg 4: Exportera till CSV
df = pd.DataFrame(products)
df.to_csv("amazon_best_sellers.csv", index=False)
print(f"Skrapade {len(products)} produkter")
Vad du kan förvänta dig — och vad som går fel
I mitt test gav den här metoden cirka 30 produkter i stället för 50. Det är inte ett fel i koden — det är Amazons lazy loading. Bara omkring 30 produkter renderas vid första sidladdningen; resten visas efter scrollning, vilket kräver JavaScript-exekvering som requests inte kan hantera.
Andra begränsningar:
- IP-blockering kommer snabbt utan proxyrotation (jag blev blockerad efter cirka 15 snabba anrop)
- CSS selectors går sönder när Amazon uppdaterar sidans layout — och det gör de regelbundet
- Ingen inbyggd paginering
För att lära sig Python-skrapning är det här ett bra sätt. För produktion är det skört.
Metod 2: Skrapa Amazon Best Sellers med Selenium
Selenium löser lazy-loading-problemet genom att köra en riktig webbläsare — tyngre att sätta upp, men den fångar alla 50 produkter per sida.
Steg 1: Installera Selenium
pip install selenium pandas
God nyhet: från och med Selenium 4.6 behöver du inte längre webdriver-manager. Selenium Manager sköter nedladdningen av drivers automatiskt.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pandas as pd
options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
Flaggan --headless=new (introducerad i Chrome 109+) använder samma renderingsmotor som en vanlig Chrome-fönsterinstans, vilket gör det svårare för Amazon att upptäcka.
Steg 2: Scrolla förbi lazy loading
Det här är steget som gör att Selenium är värt den extra uppsättningskostnaden. Amazon Best Sellers laddar bara ungefär 30 produkter först — resten visas efter scrollning.
def scroll_page(driver, scrolls=5, delay=2):
for _ in range(scrolls):
driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
time.sleep(delay)
driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
time.sleep(3)
scroll_page(driver)
Efter scrollning bör alla 50 produkter vara renderade i DOM:en. Jag märkte att 5 nedåtscrollningar med 2 sekunders paus räckte, men du kan behöva justera beroende på din uppkoppling.
Steg 3: Extrahera produktdata
items = driver.find_elements(By.ID, "gridItemRoot")
products = []
for item in items:
try:
title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
except:
title = "N/A"
try:
price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
except:
price = "N/A"
try:
url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
except:
url = "N/A"
products.append({"Title": title, "Price": price, "URL": url})
Det är viktigt att kapsla in varje extraktion i try/except — vissa produkter kan vara slut i lager eller sakna fält, och du vill inte att ett felaktigt element ska krascha hela skrapningen.
Steg 4: Hantera paginering
Amazon delar upp 100 Best Sellers över två sidor med olika URL-strukturer:
urls = [
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
]
all_products = []
for url in urls:
driver.get(url)
time.sleep(3)
scroll_page(driver)
# ... extrahera produkter som ovan ...
all_products.extend(products)
driver.quit()
Vad du kan förvänta dig
I mitt test fångade Selenium alla 50 produkter per sida — en tydlig vinst över requests + BS4. Nackdelen: det tog ungefär 45 sekunder per sida (inklusive scrollfördröjningar), och jag blev ändå flaggad efter att ha kört det för många gånger utan proxyrotation. Selenium går dessutom att upptäcka av Amazons bot-skydd även med anti-detection-flaggor — för seriös skala behöver du ytterligare åtgärder (se Anti-Ban Playbook nedan).
Andra problem:
- WebDriver-versioner kan fortfarande ibland bli fel, även om Selenium Manager har gjort det mycket mer sällsynt
- CSS selectors måste uppdateras när Amazon ändrar sin DOM
- Minnesanvändningen är hög — varje webbläsarinstans äter 200–400 MB RAM
Metod 3: Skrapa Amazon Best Sellers med ett scraping-API
Scraping-API:er är "låt någon annan hantera det svåra"-lösningen. Tjänster som Scrape.do, Oxylabs och ScrapingBee sköter proxyrotation, JavaScript-rendering och bot-skydd — du skickar bara en URL och får tillbaka HTML eller JSON.
Så fungerar det
Du skickar din mål-URL till API-endpointen. API:t renderar sidan med en riktig webbläsare på sin infrastruktur, roterar proxyservrar, hanterar CAPTCHA och returnerar ren HTML. Sedan parsar du den returnerade HTML:en med BeautifulSoup som vanligt.
Steg 1: Skicka en förfrågan via API:t
Här är ett exempel med Scrape.do (priser från $29/månad för 150 000 credits, 1 credit = 1 anrop oavsett rendering):
import requests
from bs4 import BeautifulSoup
api_token = "YOUR_API_TOKEN"
target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
response = requests.get(api_url)
soup = BeautifulSoup(response.text, "html.parser")
Härifrån är parsningen identisk med metod 1 — samma selectors, samma extraktionslogik.
Prisjämförelse i praktiken
Här är vad de stora API-leverantörerna tar per 1 000 Amazon-anrop vid sitt bästa tillgängliga pris:
| Leverantör | Kostnad per 1 000 anrop | Kommentarer |
|---|---|---|
| Scrape.do | cirka $0,19 | Fast pris, inga kreditmultiplikatorer |
| Oxylabs | cirka $1,80 | 5x multiplikator för JavaScript-rendering |
| ScrapingBee | cirka $4,90 | 5–25x multiplikatorer för premiumfunktioner |
| Bright Data | $5,00+ | Mest omfattande data (686 fält/produkt) men långsammast (~66 sek/anrop) |
För- och nackdelar
Fördelar: Hög tillförlitlighet (cirka 99% lyckandefrekvens på Amazon för toppleverantörer), inget driver-underhåll, hanterar bot-skydd automatiskt och skalar bra.
Nackdelar: Betalar per anrop (kostnaderna växer i skala), du måste fortfarande skriva parsingskod, och du är fortfarande beroende av att CSS selectors inte ändras. För 100 000 sidor/månad blir totalkostnaden dramatisk: att bygga internt kostar ungefär $1,98 miljoner över tre år jämfört med $332 000 med en API-leverantör — en besparing på 71%.
Brytpunkten ligger vanligtvis runt 500 000–1 miljon anrop per månad. Under den nivån väger tidsbesparingen med API klart tyngre än kostnaden.
Metod 4: Skrapa Amazon Best Sellers med Thunderbit (ingen Python behövs)
Full transparens: jag jobbar på Thunderbit, så ta den här delen med det i åtanke. Med det sagt testade jag verkligen alla fyra metoderna direkt efter varandra, och skillnaden i tid till data var slående.
Thunderbit är en AI-webbskrapare som körs som ett Chrome-tillägg. Grundidén: i stället för att skriva CSS selectors eller Python-kod läser AI:n sidan och listar ut vilken data som ska extraheras. För Amazon Best Sellers finns det särskilda färdiga mallar som fungerar med ett enda klick.
Steg 1: Installera Thunderbit Chrome Extension
Gå till Chrome Web Store och klicka på "Lägg till i Chrome." Skapa ett gratis konto — gratisnivån ger tillräckligt med credits för att testa.
Steg 2: Öppna Amazon Best Sellers-sidan
Öppna valfri kategori-sida för Amazon Best Sellers i Chrome. Till exempel:
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/
Steg 3: Klicka på "One Click Extract"
Öppna Thunderbit-sidebaren och klicka på "One Click Extract." AI:n analyserar sidstrukturen och hittar kolumnerna: Product Name, Price, Rating, Image URL, Vendor, Product URL och Rank. I mitt test identifierade den alla relevanta fält korrekt på ungefär 3 sekunder.

Du kan byta namn på, ta bort eller lägga till kolumner. Du kan till och med lägga till egna AI-prompter per fält — till exempel "kategorisera som Electronics/Apparel/Home" för att lägga en kategori-tag på varje produkt.
Steg 4: Klicka på "Scrape"
Tryck på knappen "Scrape". Thunderbit fyller en strukturerad tabell med all produktdata från sidan. I cloud mode kan den bearbeta upp till 50 sidor samtidigt parallellt och hanterar lazy loading och paginering automatiskt.
Steg 5: Exportera gratis
Klicka på "Export" och välj destination: Excel, Google Sheets, Airtable eller Notion. Alla exporter är gratis i alla planer — inga dolda avgifter.

Hela processen tog ungefär 90 sekunder för mig, från att jag öppnade sidan tills jag hade ett komplett kalkylblad. Som jämförelse tog metod 1 ungefär 20 minuter (inklusive felsökning av lazy loading-problemet), metod 2 tog ungefär 35 minuter (inklusive uppsättning av Selenium), och metod 3 tog ungefär 15 minuter (inklusive skapande av API-konto).
Varför Thunderbit fungerar bra för Amazon
Eftersom AI:n läser sidan på nytt varje gång anpassar den sig automatiskt när layouten ändras — inga CSS selectors att underhålla. Det här adresserar direkt den vanligaste invändningen i scraping-forum: "En grundläggande web scraper räcker inte, du måste lägga till så många 'catchs' för elementändringar." När Amazon ändrar sin DOM (vilket händer regelbundet) behöver du inte uppdatera någonting.
Cloud scraping-läget hanterar proxyrotation, rendering och bot-skydd transparent. För användare som vill ha en lösning som bara fungerar eliminerar det hela anti-ban-bekymret.
Slipp underhåll av selectors När Amazon ändrar sin markup går dina BeautifulSoup-selectors sönder. Thunderbits AI läser om sidan varje gång och räknar ut fälten på nytt. Get Started Free
Anti-Ban Playbook: Så undviker du att bli blockerad av Amazon
Amazons bot-detektering är aggressiv. Jag blev tillfälligt blockerad under testet, och forumanvändare rapporterar samma sak: "fel överallt, Amazon började till och med omdirigera mig till startsidan." Om du väljer Python-spåret (metod 1–3) är det här avsnittet avgörande.
Här är en lager-på-lager-strategi, rangordnad från grundläggande till avancerad:
1. Rotera User-Agent-strängar
Att skicka samma User-Agent om och om igen är en varningssignal. Använd uppsättningen med 5+ strängar från kodexemplet i metod 1 och välj slumpmässigt en per anrop:
headers = {"User-Agent": random.choice(USER_AGENTS)}
2. Lägg in slumpmässiga pauser mellan anrop
Fasta pauser är lätta att upptäcka (mönster). Slumpmässiga är säkrare:
time.sleep(random.uniform(2, 5))
Jag märkte att 2–5 sekunder mellan anrop höll mig under radarn för mindre batcher (under 50 anrop). För större körningar, öka till 3–7 sekunder.
3. Använd proxyrotation
Det här är den stora grejen. Proxyway-benchmarktester visar att residential proxies i snitt når cirka 94% lyckande på Amazon jämfört med cirka 59% för datacenter-proxyservrar — en skillnad på 35 procentenheter. Amazons detektionsstack inkluderar TLS-fingeravtryck, beteendeanalys och begränsning per IP, så vanliga datacenter-IP:er flaggas inom sekunder.
Residential proxies är dyrare ($2–$12 per GB beroende på leverantör) men betydligt mer pålitliga. Exempel i kod:
proxies = {
"http": "http://user:pass@residential-proxy.example.com:8080",
"https": "http://user:pass@residential-proxy.example.com:8080"
}
response = requests.get(url, headers=headers, proxies=proxies)
4. Gör din webbläsarfingeravtryck mer robust (Selenium)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# Efter att driver initierats, ta bort navigator.webdriver-flaggan
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
5. Hantera sessioner och cookies
Att behålla cookies mellan anrop gör att din scraper ser mer ut som en riktig användarsession:
session = requests.Session()
# Besök först startsidan för att få realistiska cookies
session.get("https://www.amazon.com", headers=headers)
time.sleep(2)
# Skrapa sedan målsidan
response = session.get(target_url, headers=headers)
6. När du ska hoppa över huvudvärken helt
För användare som inte vill hantera något av detta sköter Thunderbits cloud scraping proxyrotation, rendering och bot-skydd transparent. Scraping-API:er hanterar också det mesta av detta automatiskt. Enligt min erfarenhet överstiger tiden som går åt till att felsöka anti-ban-problem ofta tiden som går åt till att skriva själva scrapingkoden — så "det bara fungerar" har faktiskt en tydlig ROI.
Berikning via undersidor: skrapa produktsidor för mer detaljerad data
Best Sellers-listan visar bara grundläggande info — titel, pris, betyg, rank. Men det verkliga värdet för FBA-research finns på de enskilda produktsidorna. Här är vad du missar om du bara skrapar listan:
| Fält | Listningssida | Produktsida |
|---|---|---|
| Produktnamn | ✅ | ✅ |
| Pris | ✅ | ✅ |
| Betyg | ✅ | ✅ |
| BSR-rank | ✅ | ✅ (med underkategorirankningar) |
| Varumärke | ❌ | ✅ |
| ASIN | ❌ | ✅ |
| Datum för första tillgänglighet | ❌ | ✅ |
| Mått/vikt | ❌ | ✅ |
| Antal säljare | ❌ | ✅ |
| Punktlistade produktfunktioner | ❌ | ✅ |
| Vem som äger Buy Box | ❌ | ✅ |
Fältet "Datum för första tillgänglighet" är särskilt värdefullt — det visar hur länge en produkt har funnits på marknaden, vilket är en viktig signal i konkurrensanalys. Och att veta antalet säljare och vem som äger Buy Box hjälper dig bedöma om en produktnisch är värd att gå in i (om Amazon själv äger mer än 30% av Buy Box-andelen är det extremt svårt att konkurrera).
Python-metod: loopa igenom produkt-URL:er
Efter att du samlat in produkt-URL:er från listningssidan, loopa igenom dem med en paus mellan varje:
for product in products:
time.sleep(random.uniform(3, 6))
detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
detail_soup = BeautifulSoup(detail_response.text, "html.parser")
# Extrahera varumärke
brand_tag = detail_soup.find("a", id="bylineInfo")
product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
# Extrahera ASIN från sidkällan eller URL:en
# Extrahera datum för första tillgänglighet från produkttabellen
# ... ytterligare fält ...
En tydlig varning: att träffa 100 enskilda produktsidor ökar risken för blockering markant. Räkna med proxyrotation och längre pauser.
Thunderbit-metod: skrapa undersidor med ett klick
Efter att du skrapat listningssidan till en tabell klickar du på "Scrape Subpages" i Thunderbit. AI:n besöker varje produkt-URL och berikar tabellen med fler kolumner — varumärke, ASIN, specifikationer, funktioner — automatiskt. Ingen extra kod, inga selectors och ingen ny setup. Det är särskilt användbart för e-handelsteam som behöver hela bilden för inköpsbeslut men inte vill skriva och underhålla en parser för produktsidor.
Automatisera återkommande skrapningar: bevaka Best Sellers över tid
En engångsskrapning är användbar, men löpande bevakning är där den verkliga konkurrensfördelen finns. Att följa vilka produkter som stiger och faller, upptäcka trender tidigt och bevaka prisförändringar över veckor eller månader — det är det som skiljer enkel research från datadrivet beslutsfattande.
Python-metod: schemalägg med Cron
På Linux/Mac kan du schemalägga ditt Python-skript med cron. Här är crontab-raden för en daglig skrapning kl. 08:00:
0 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
För en veckovis skrapning på måndagar kl. 09:00:
0 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
På Windows använder du Task Scheduler för att göra samma sak. Om du vill ha schemaläggning som alltid är igång utan att ha din laptop på, kan du köra på en VPS eller AWS Lambda — men det lägger till mer infrastrukturkomplexitet.
Lägg till loggning och felnotiser så att du märker när körningar misslyckas. Det finns inget värre än att upptäcka att din scraper i tysthet gick sönder för två veckor sedan.
Thunderbit-metod: Scheduled Scraper på vanlig svenska
Thunderbits Scheduled Scraper låter dig beskriva intervallet med naturligt språk — skriv "varje måndag kl. 9" eller "varje dag kl. 8" så tolkar AI:n schemat. Skrapningarna körs på Thunderbits molnservrar (ingen webbläsare eller dator behöver vara igång), och datan exporteras automatiskt till Google Sheets eller Airtable. Det skapar en levande bevakningspanel utan serveradministration — perfekt för operations-team som vill ha löpande insyn utan DevOps-bördan.
Juridiska och etiska överväganden vid skrapning av Amazon
Jag är inte jurist, och det här är inte juridisk rådgivning. Men att ignorera det juridiska landskapet i en scraping-guide vore oansvarigt — forumanvändare lyfter uttryckligen ToS-frågor, och det med rätta.
Amazons robots.txt: Från och med 2026 innehåller Amazons robots.txt 80+ specifika Disallow-sökvägar, men /gp/bestsellers/ är INTE uttryckligen blockerad för vanliga user agents. Däremot får över 35 AI-specifika user agents (ClaudeBot, GPTBot, Scrapy, med flera) ett generellt Disallow: /. Att något inte är uttryckligen disallow:at betyder inte att Amazon godkänner skrapning.
Amazons användarvillkor: Amazons Conditions of Use (uppdaterade maj 2025) förbjuder uttryckligen "using any automated process or technology to access, acquire, copy, or monitor any part of the Amazon Website" utan skriftligt tillstånd. Det här är inte bara teori — Amazon stämde Perplexity AI i november 2025 för otillåten automatiserad åtkomst och vann ett preliminärt föreläggande.
Prejudikatet hiQ v. LinkedIn: I hiQ Labs v. LinkedIn (Nionde kretsen, 2022) slog domstolen fast att skrapning av offentligt tillgänglig data sannolikt inte bryter mot Computer Fraud and Abuse Act. Men hiQ förlikades till slut och gick med på att sluta skrapa — att vinna enligt CFAA skyddar inte mot avtalsbrottsanspråk.
Praktiska riktlinjer:
- Skrapa bara offentligt tillgänglig data (priser, BSR, produktnamn — inte personuppgifter)
- Respektera rate limits och överbelasta inte servrarna
- Använd data för legitim konkurrensanalys
- Rådgör med egen jurist innan du skrapar i stor skala
- Var medveten om att över 20 amerikanska delstater nu har omfattande integritetslagstiftning
Thunderbits cloud scraping använder vanliga webbläsarliknande anropsmönster, men du bör alltid kontrollera efterlevnaden med egen juridisk rådgivning.
Ingen Python behövs här Om målet är ett kalkylblad snarare än en pipeline tar du dig dit med ett klick. Exportera direkt till Excel, Google Sheets, Airtable eller Notion. Get Started Free
Vilken metod ska du välja? En snabb beslutsguide
Kort version:
- "Jag lär mig Python och vill ha ett helgprojekt." → Metod 1 (requests + BeautifulSoup). Du lär dig massor om HTTP-anrop, HTML-parsning och Amazons bot-skydd.
- "Jag behöver skrapa JavaScript-tunga sidor eller inloggade sessioner." → Metod 2 (Selenium). Tyngre, men hanterar dynamiskt innehåll.
- "Jag kör produktion i stor skala." → Metod 3 (Scraping API). Låt någon annan sköta proxies och rendering. Total ägandekostnad talar för API:er under 500 000 anrop/månad.
- "Jag är inte utvecklare och vill ha data på 2 minuter." → Metod 4 (Thunderbit). Ingen kod, inga selectors, inget underhåll.
- "Jag behöver löpande bevakning utan serverhantering." → Thunderbit Scheduled Scraper. Ställ in en gång och glöm det.
Testa Thunderbit för Amazon Best Sellers Get Started Free
Slutsats och viktigaste lärdomar
Efter en helg av tester är det här vad som faktiskt fastnade:
requests + BeautifulSoup är bra för att lära sig, men lazy-loading-begränsningen (bara ungefär 30 av 50 produkter) och sköra CSS selectors gör det opraktiskt för produktion.
Selenium löser lazy-loading-problemet och fångar alla 50 produkter per sida, men det är långsamt, minneskrävande och går fortfarande att upptäcka av Amazons bot-skydd.
Scraping APIs erbjuder den bästa tillförlitligheten för produktion i skala — cirka 99% lyckande på Amazon — men kostnaderna växer och du behöver fortfarande skriva parsingskod.
Thunderbit gav klart snabbast tid till data. AI:n hanterar layoutändringar, lazy loading, paginering och bot-skydd utan någon konfiguration. För icke-tekniska användare eller team som behöver återkommande data utan DevOps-börda är det det mest praktiska alternativet.
Den största lärdomen? Amazons bot-skydd och frekventa layoutändringar gör att lösningar utan löpande underhåll sparar mest tid i längden. Varje timme du lägger på att felsöka trasiga selectors och rotera proxyservrar är en timme du inte lägger på faktisk analys.
Vill du testa no-code-spåret? Thunderbits gratisnivå ger dig tillräckligt med credits för att skrapa några Best Sellers-kategorier och se resultatet själv. Föredrar du Python-vägen? Kodexemplen ovan borde få dig igång. Oavsett vilket får du Amazon Best Seller-data i ett kalkylblad i stället för att stirra på en webbläsarflik.
För mer om web scraping-metoder, kolla in våra guider om att skrapa Amazon-produkter och recensioner, att extrahera data från webbplatser till Excel och de bästa AI-webbskraparna. Du kan också se steg-för-steg-genomgångar på Thunderbit YouTube-kanalen.
Läs mer


