Jeg testede 4 måder at scrape Amazon Best Sellers med Python og ...

Sidst opdateret den April 17, 2026

Sidste weekend brugte jeg en hel kande kaffe på at scrape Amazons Best Sellers-side på fire forskellige måder. To virkede virkelig godt, én var lige ved at få min IP blokeret, og én krævede ærlig talt kun to klik. Her er alt, hvad jeg lærte.

Amazon er et enormt marked — , og et Best Sellers Rank-system (BSR), der opdateres hver time. Hvis du laver produktresearch til FBA, pris- og konkurrenceanalyse eller bare prøver at spotte trends før dine konkurrenter, så er data fra Best Sellers virkelig en guldgrube.

Men at få de data ud af Amazon og over i et regneark? Det er dér, det bliver interessant. Jeg testede requests + BeautifulSoup, Selenium, en scraping API og (vores egen no-code AI-webscraper) for at se, hvilken løsning der faktisk leverer — og hvilke der ender med at sende dig direkte ind på en CAPTCHA-side.

Hvad er Amazon Best Sellers egentlig, og hvorfor bør du interessere dig?

Amazon Best Sellers Rank (BSR) er Amazons realtime-liste over de mest solgte produkter inden for hver kategori. Tænk på det som en popularitetsrangering, der opdateres hver time og bygger på både nyere og historiske salgstal. Amazon beskriver det sådan her:

"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." —

Best Sellers-siden viser de 100 bedste produkter pr. kategori, fordelt på to sider med 50 på hver. Side 1 dækker rang #1–50, side 2 dækker #51–100. Amazon har bekræftet, at sidevisninger og kundeanmeldelser IKKE påvirker BSR — det er udelukkende salgsdrevet.

Hvem har så glæde af de her data? E-commerce-sælgere, der undersøger produkter til FBA, salgsteams, der bygger konkurrentindsigt, operations-teams, der følger prisudvikling, og markedsanalytikere, der holder øje med kategoriers vækst. Efter min erfaring ender alle, der sælger på eller konkurrerer med Amazon, før eller siden med at få brug for de her data i et regneark.

Hvorfor scrape Amazon Best Sellers med Python?

Manuel produktresearch sluger tid. En viste, at medarbejdere bruger 9,3 timer om ugen bare på at søge efter og samle information. For e-commerce-teams betyder det timer brugt på at klikke rundt på Amazon, kopiere produktnavne og priser og sætte dem ind i regneark — blot for at gøre det hele igen ugen efter.

Her er et hurtigt overblik over de use cases, hvor det giver mening at scrape Best Sellers:

Use CaseHvad du fårHvem det hjælper
FBA Product ResearchFind produkter med høj efterspørgsel og lav konkurrence ud fra BSR og antal anmeldelserAmazon-sælgere, dropshippere
KonkurrencepriserFølg prisændringer på tværs af top-produkter i din kategoriE-commerce-teams, prisanalytikere
Overvågning af markedstrendsSpot stigende kategorier og sæsonudsvingProduct managers, markedsanalytikere
LeadgenereringByg lister over topsælgende brands og deres produktlinjerSalgsteams, B2B-outreach
KonkurrentanalyseSammenlign dine produkter med kategoriens førende aktørerBrand managers, strategiteams

Afkastet er reelt: En blandt 2.700 commerce-professionelle viste, at AI-værktøjer sparer e-commerce-professionelle i gennemsnit . Og sælgere, der bruger automatiseret prisovervågning, holder Buy Box mod 42% for manuelle trackers — en salgsstigning på 37% drevet af hurtigere reaktioner på prisændringer.

4 måder at scrape Amazon Best Sellers med Python: en hurtig sammenligning

Før vi går i gang med trin-for-trin-guiden, får du her den sammenligning side om side, jeg selv ville ønske, jeg havde haft fra starten. Tabellen hjælper dig med at vælge den rigtige metode til din situation:

Kriteriumrequests + BS4SeleniumScraping API (fx Scrape.do)Thunderbit (No-Code)
OpsætningssværhedsgradMellemHøj (driver, browser)Lav (API-nøgle)Meget lav (Chrome-udvidelse)
Håndterer lazy loadingNejJa (scroll-simulering)Ja (renderet HTML)Ja (AI håndterer rendering)
Modstandsdygtighed mod anti-botLav (IP-blokering)Mellem (kan opdages)Høj (roterende proxies)Høj (cloud- og browser-tilstande)
VedligeholdelsesbyrdeHøj (selectors går i stykker)Høj (driver-opdateringer + selectors)LavMeget lav (AI tilpasser sig layoutændringer)
PrisGratisGratisBetalt (pr. request)Gratis niveau + betalte planer
Bedst tilEngangs-scrapes, læringJS-tunge sider, login krævetSkala / produktionIkke-udviklere, hurtig research, løbende overvågning

Hvis du vil lære det grundlæggende i Python-scraping, så begynd med metode 1 eller 2. Hvis du har brug for driftssikkerhed i produktion, så vælg metode 3. Hvis du vil have resultater med to klik uden at skrive kode, så hop direkte til metode 4.

Før du går i gang

  • Sværhedsgrad: Begynder til let øvet (afhænger af metode)
  • Tidsforbrug: ~15 minutter for Thunderbit, ~45 minutter for Python-metoderne
  • Det skal du bruge: Python 3.8+ (til metode 1–3), Chrome-browser, (til metode 4) og en Amazon Best Sellers-kategori-URL

Metode 1: Scrape Amazon Best Sellers med requests + BeautifulSoup

Det her er den lette, begyndervenlige tilgang — ingen browserautomatisering, bare HTTP-requests og HTML-parsing. Den lærte mig også mest om Amazons anti-scraping-forsvar.

Trin 1: Sæt dit miljø op

Installer de nødvendige pakker:

1pip install requests beautifulsoup4 pandas

Sæt derefter dine imports op:

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

Trin 2: Send en request med realistiske headers

Amazon blokerer requests, der ligner bots. Det mest basale forsvar er en User-Agent-header, der ligner en rigtig browser. Her er et eksempel med en pulje af aktuelle, realistiske User-Agent-strenge (kilde: , marts 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, like 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, like 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

Hvis du får statuskode 200, er du inde. Hvis du ser 503 eller bliver sendt videre til en CAPTCHA-side, har Amazon markeret din request.

Trin 3: Parse produktdata med BeautifulSoup

Undersøg Amazons HTML i browserens DevTools (højreklik → Inspicér). Produktcontainerne bruger ID’et gridItemRoot. Inde i hver container finder du produktnavn, pris, rating og URL.

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})

Advarsel: Klassernavne med præfikset _cDEzb_ er CSS-modul-hashes, som Amazon genskaber med jævne mellemrum. gridItemRoot-ID’et og a-link-normal-klassen er mere stabile, men tjek altid selectors i DevTools, før du kører din scraper.

Trin 4: Eksportér til CSV

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

Hvad du kan forvente — og hvad der går galt

I min test returnerede denne metode omkring 30 produkter i stedet for 50. Det er ikke en fejl i koden — det er Amazons lazy loading. Kun cirka 30 produkter renderes ved første indlæsning; resten kommer først frem efter scrolling, og det kræver JavaScript-eksekvering, som requests ikke kan håndtere.

Andre begrænsninger:

  • IP-blokering sker hurtigt uden proxy-rotation (jeg blev blokeret efter cirka 15 requests i hurtig rækkefølge)
  • CSS selectors går i stykker, når Amazon opdaterer sidens layout — og det gør de ret ofte
  • Ingen indbygget håndtering af paginering

Som læring i Python-scraping er den her tilgang rigtig god. Til produktion er den skrøbelig.

Metode 2: Scrape Amazon Best Sellers med Selenium

Selenium løser lazy-loading-problemet ved at køre en rigtig browser — tungere at sætte op, men den henter alle 50 produkter pr. side.

Trin 1: Installér Selenium

1pip install selenium pandas

God nyhed: Fra Selenium 4.6+ behøver du ikke længere webdriver-manager. Selenium Manager håndterer download af drivere automatisk.

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)

Flaget --headless=new (introduceret i Chrome 109+) bruger den samme rendering-pipeline som almindelig Chrome, hvilket gør det sværere for Amazon at opdage automatisering.

Trin 2: Scroll forbi lazy loading

Det her er trinnet, der gør Selenium besværet værd. Amazon Best Sellers loader kun cirka 30 produkter i starten — resten kommer frem, når du scroller.

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)

Efter scrolling burde alle 50 produkter være rendret i DOM’en. Jeg fandt, at 5 Page Down-scrolls med 2 sekunders pause var nok, men du skal muligvis justere det afhængigt af din forbindelseshastighed.

Trin 3: Udtræk produktdata

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})

Det er vigtigt at pakke hver udtrækning ind i try/except — nogle produkter kan være udsolgt eller mangle felter, og du vil ikke have, at ét dårligt element vælter hele scrapen.

Trin 4: Håndtér paginering

Amazon opdeler 100 Best Sellers på to sider med forskellige URL-strukturer:

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()

Hvad du kan forvente

I min test hentede Selenium alle 50 produkter pr. side — en klar sejr over requests + BS4. Ulempen: Det tog cirka 45 sekunder pr. side (inklusive scroll-pauser), og jeg blev stadig flagget, efter jeg kørte det for mange gange uden proxy-rotation. Selenium kan også opdages af Amazons bot-detektion, selv med anti-detection-flags — til seriøs skalering får du brug for ekstra tiltag (se Anti-Ban Playbook længere nede).

Andre problemer:

  • Version-mismatch mellem WebDriver og browser sker stadig indimellem, selv om Selenium Manager har gjort det langt mindre almindeligt
  • CSS selectors skal opdateres, hver gang Amazon ændrer deres DOM
  • Hukommelsesforbruget er højt — hver browserinstans sluger 200–400 MB RAM

Metode 3: Scrape Amazon Best Sellers med en scraping API

Scraping APIs er løsningen, hvor du lader andre klare de svære ting. Tjenester som Scrape.do, Oxylabs og ScrapingBee håndterer proxy-rotation, JavaScript-rendering og anti-bot-forsvar — du sender bare en URL og får HTML eller JSON tilbage.

Sådan virker det

Du sender din mål-URL til API-endpointet. API’et renderer siden med en rigtig browser på deres infrastruktur, roterer proxies, håndterer CAPTCHA’er og returnerer ren HTML. Derefter parser du den modtagne HTML med BeautifulSoup som normalt.

Trin 1: Send en request gennem API’et

Her er et eksempel med Scrape.do (priser starter ved $29/måned for 150.000 credits, hvor 1 credit = 1 request uanset rendering):

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")

Herfra er parsing identisk med metode 1 — de samme selectors, den samme udtrækningslogik.

Prisvirkeligheden

Her er, hvad de største APIs koster pr. 1.000 Amazon-requests ved deres bedste tilgængelige pris:

UdbyderPris pr. 1.000 requestsBemærkninger
Scrape.doca. $0,19Fast pris, ingen kredit-multiplikatorer
Oxylabsca. $1,805x multiplikator for JS-rendering
ScrapingBeeca. $4,905–25x multiplikatorer for premium-funktioner
Bright Data$5,00+Mest omfattende data (686 felter/produkt), men langsomst (~66 sek./request)

Fordele og ulemper

Fordele: Høj driftssikkerhed ( på Amazon hos de bedste udbydere), ingen driver-vedligeholdelse, håndterer anti-bot automatisk, skalerer godt.

Ulemper: Betaling pr. request (regningen vokser hurtigt i stor skala), du skal stadig selv skrive parsing-kode, og du er stadig sårbar over for ændringer i CSS selectors. Ved 100.000 sider om måneden er den samlede omkostning dramatisk: at bygge in-house koster cirka — en besparelse på 71%.

Break-even ligger typisk ved 500.000–1 mio. requests om måneden. Under det overstiger tidsbesparelsen fra API’et normalt langt omkostningen.

Metode 4: Scrape Amazon Best Sellers med Thunderbit (ingen Python nødvendig)

Fuld åbenhed: Jeg arbejder hos Thunderbit, så tag dette afsnit med det forbehold. Når det er sagt, testede jeg faktisk alle fire metoder lige efter hinanden, og forskellen i tid fra data til data var markant.

er en AI-webscraper, der kører som en Chrome-udvidelse. Kerneidéen er enkel: I stedet for at skrive CSS selectors eller Python-kode læser AI’en siden og finder ud af, hvilke data der skal trækkes ud. Til Amazon Best Sellers findes der specifikke skabeloner, som virker med ét klik.

Trin 1: Installér Thunderbit Chrome Extension

Gå til og klik på "Add to Chrome." Opret en gratis konto — gratisniveauet giver nok credits til, at du kan teste det.

Trin 2: Gå til Amazon Best Sellers-siden

Åbn en vilkårlig Amazon Best Sellers-kategori i Chrome. For eksempel: https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/

Trin 3: Klik på "AI Suggest Fields"

Åbn Thunderbit-sidebaren og klik på "AI Suggest Fields." AI’en analyserer sidens struktur og foreslår kolonner: produktnavn, pris, rating, billed-URL, sælger, produkt-URL og rang. I min test identificerede den alle relevante felter korrekt på omkring 3 sekunder.

amazon-thunderbit-product-data.webp

Du kan omdøbe, fjerne eller tilføje kolonner. Du kan endda tilføje brugerdefinerede AI-prompts pr. felt — for eksempel "klassificér som Electronics/Apparel/Home" for at tilføje et kategorimærke til hvert produkt.

Trin 4: Klik på "Scrape"

Tryk på "Scrape"-knappen. Thunderbit fylder en struktureret tabel med alle produktdata fra siden. I cloud-tilstand kan den behandle op til 50 sider ad gangen parallelt og håndterer både lazy loading og paginering automatisk.

Trin 5: Eksportér gratis

Klik på "Export" og vælg din destination: Excel, Google Sheets, Airtable eller Notion. Alle eksportfunktioner er gratis på alle planer — ingen skjulte gebyrer.

product-data-export.webp

Hele processen tog mig cirka 90 sekunder fra jeg åbnede siden, til jeg havde et komplet regneark. Til sammenligning tog metode 1 cirka 20 minutter (inklusive fejlfinding af lazy loading-problemet), metode 2 tog cirka 35 minutter (inklusive Selenium-opsætning), og metode 3 tog cirka 15 minutter (inklusive oprettelse af API-konto).

Hvorfor Thunderbit klarer Amazon godt

Fordi AI’en læser siden fra bunden hver gang, tilpasser den sig automatisk layoutændringer — ingen CSS selectors, der skal vedligeholdes. Det rammer direkte ned i den mest almindelige klage i scraping-fora: "En basic webscraper er ikke nok, du skal lave alt for mange 'catches' for elementændringer." Når Amazon ændrer deres DOM (og det gør de ofte), skal du ikke opdatere noget.

Cloud scraping-tilstanden håndterer proxy-rotation, rendering og anti-bot-forsvar uden, at du ser det. For brugere, der vil have en løsning, der bare virker, fjerner det hele anti-ban-hovedpinen.

Anti-Ban Playbook: Sådan undgår du at blive blokeret af Amazon

Amazons bot-detektion er aggressiv. Jeg fik midlertidigt blokeret min IP under testen, og forumbrugere rapporterer det samme: "errors everywhere, amazon even started redirecting me to the homepage." Hvis du går Python-vejen (metode 1–3), er dette afsnit afgørende.

Her er en lagdelt strategi, rangordnet fra basis til avanceret:

1. Rotér User-Agent-strenge

At sende den samme User-Agent igen og igen er et rødt flag. Brug puljen på 5+ strenge fra kodeeksemplet i metode 1, og vælg tilfældigt én pr. request:

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

2. Tilføj tilfældige pauser mellem requests

Faste pauser er lette at opdage (mønstre). Tilfældige pauser er sikrere:

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

Jeg fandt, at 2–5 sekunder mellem requests holdt mig under radaren i små batches (under 50 requests). Ved større kørsler bør du øge det til 3–7 sekunder.

3. Brug proxy-rotation

Det her er den store. viser, at residential proxies i gennemsnit har cirka 94% succes på Amazon mod cirka 59% for datacenter-proxies — en forskel på 35 procentpoint. Amazons detektionsstack bruger TLS-fingerprinting, adfærdsanalyse og rate limiting pr. IP, så almindelige datacenter-IP’er bliver hurtigt markeret.

Residential proxies er dyrere ($2–$12 pr. GB afhængigt af udbyder), men langt mere driftssikre. Et kodeeksempel:

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. Styrk browser-fingeraftrykket i 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_command('Page.addScriptToEvaluateOnNewDocument', {
6    'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
7})

5. Håndtér sessioner og cookies

Ved at gemme cookies mellem requests ligner din scraper mere en ægte brugersession:

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. Hvornår du helt skal springe besværet over

For brugere, der ikke vil administrere noget af det her, håndterer Thunderbits cloud scraping proxy-rotation, rendering og anti-bot-forsvar automatisk. Scraping APIs håndterer også det meste af dette som standard. Efter min erfaring overstiger tiden, man bruger på at fejlfinde anti-ban-problemer, ofte den tid, man bruger på selve scraping-koden — så "det virker bare"-tilgangen har reelt afkast.

Subpage enrichment: Scrape produktsider for mere detaljerede data

Best Sellers-listesiden viser kun de basale oplysninger — titel, pris, rating og rang. Men den virkelige værdi for FBA-research ligger på de enkelte produktsider. Her er, hvad du går glip af, hvis du kun scraper listen:

FeltListesideProduktside
Produktnavn
Pris
Rating
BSR-rang✅ (med underkategori-rang)
Brand
ASIN
Dato første gang tilgængelig
Mål/vægt
Antal sælgere
Bullet-point features
Buy Box-ejer

Feltet "Dato første gang tilgængelig" er særligt værdifuldt — det fortæller, hvor længe et produkt har været på markedet, hvilket er et vigtigt signal i konkurrenceanalyse. Og når du kender antallet af sælgere og Buy Box-ejeren, kan du bedre vurdere, om en produktniche er værd at gå ind i (hvis Amazon selv sidder på over 30% af Buy Box-andelen, er det ekstremt svært at konkurrere).

Python-tilgangen: loop gennem produkt-URL’er

Når du har samlet produkt-URL’erne fra listesiden, kan du loope gennem dem med en pause imellem:

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 ...

Lille advarsel: At ramme 100 individuelle produktsider øger din ban-risk markant. Sæt derfor penge af til proxy-rotation og længere pauser.

Thunderbit-tilgangen: subpage scraping med ét klik

Når du har scraped listesiden ind i en tabel, klikker du på "Scrape Subpages" i Thunderbit. AI’en besøger hver produkt-URL og beriger tabellen med ekstra kolonner — brand, ASIN, specifikationer, features — automatisk. Ingen ekstra kode, selectors eller opsætning. Det er især nyttigt for e-commerce-teams, der har brug for det fulde billede til sourcingbeslutninger, men ikke vil skrive og vedligeholde en parser til produktsider.

Automatisér tilbagevendende scrapes: overvåg Best Sellers over tid

En enkelt scraping er nyttig, men løbende overvågning er dér, hvor den virkelige konkurrencefordel ligger. At følge hvilke produkter der stiger og falder, opdage trends tidligt og overvåge prisændringer over uger eller måneder — det er det, der adskiller afslappet research fra datadrevet beslutningstagning.

Python-tilgangen: planlægning med cron

På Linux/Mac kan du planlægge dit Python-script med cron. Her er en crontab-linje til daglig scraping kl. 8:

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

Til en ugentlig scraping mandag kl. 9:

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

På Windows bruger du Task Scheduler til det samme. Hvis du vil have altid-aktivering uden at skulle lade din laptop køre hele tiden, kan du deploye til en VPS eller AWS Lambda — men det gør infrastrukturen mere kompleks.

Tilføj logging og fejlnotifikationer, så du opdager mislykkede kørsler. Der er næsten intet værre end at opdage, at din scraper gik i stykker lydløst for to uger siden.

Thunderbit-tilgangen: Scheduled Scraper i almindeligt sprog

Thunderbits Scheduled Scraper lader dig beskrive intervallet med naturligt sprog — skriv "hver mandag kl. 9" eller "hver dag kl. 8", og AI’en fortolker planen. Scrapes kører på Thunderbits cloud-servere (ingen browser eller computer behøver at køre), og data eksporteres automatisk til Google Sheets eller Airtable. Det skaber et live overvågningsdashboard uden serveradministration — ideelt til operations-teams, der vil have løbende indsigt uden DevOps-overhead.

Juridiske og etiske overvejelser ved scraping af Amazon

Jeg er ikke jurist, og det her er ikke juridisk rådgivning. Men at ignorere det juridiske landskab i en scraping-guide ville være uansvarligt — forumbrugere rejser selv ToS-spørgsmål, og det er der god grund til.

Amazons robots.txt: Pr. 2026 indeholder Amazons robots.txt over 80 specifikke Disallow-stier, men /gp/bestsellers/ er IKKE eksplicit blokeret for almindelige user agents. Dog får 35+ AI-specifikke user agents (ClaudeBot, GPTBot, Scrapy osv.) et generelt Disallow: /. Fraværet af en specifik blokering betyder ikke, at Amazon godkender scraping.

Amazons vilkår for brug: Amazons (opdateret maj 2025) forbyder udtrykkeligt "using any automated process or technology to access, acquire, copy, or monitor any part of the Amazon Website" uden skriftlig tilladelse. Det er ikke bare teori — Amazon i november 2025 for uautoriseret automatisk adgang og vandt et foreløbigt påbud.

Præcedens fra hiQ v. LinkedIn: I (Ninth Circuit, 2022) fastslog retten, at scraping af offentligt tilgængelige data sandsynligvis ikke bryder Computer Fraud and Abuse Act. Men hiQ indgik senere forlig og gik med til at stoppe scraping — en sejr på CFAA beskytter dig ikke mod kontraktbrudskrav.

Praktiske retningslinjer:

  • Scrape kun offentligt tilgængelige data (priser, BSR, produktnavne — ikke PII)
  • Respekter rate limits og overbelast ikke servere
  • Brug data til legitim konkurrenceindsigt
  • Tal med din egen jurist, før du scraper i stor skala
  • Vær opmærksom på, at nu har omfattende privatlivslovgivning

Thunderbits cloud scraping bruger standard browser-lignende requestmønstre, men du bør altid få din egen juridiske vurdering af compliance.

Hvilken metode skal du vælge? En hurtig beslutningsguide

Kort version:

  • "Jeg lærer Python og vil have et weekendprojekt." → Metode 1 (requests + BeautifulSoup). Du lærer masser om HTTP-requests, HTML-parsing og Amazons anti-bot-forsvar.
  • "Jeg skal scrape JavaScript-tunge sider eller login-sessioner." → Metode 2 (Selenium). Den er tungere, men håndterer dynamisk indhold.
  • "Jeg kører scraping i produktion i stor skala." → Metode 3 (Scraping API). Lad andre styre proxies og rendering. taler til API’er under 500K requests om måneden.
  • "Jeg er ikke udvikler og vil have data på 2 minutter." → Metode 4 (). Ingen kode, ingen selectors, ingen vedligeholdelse.
  • "Jeg har brug for løbende overvågning uden serveradministration." → Thunderbit Scheduled Scraper. Sæt det op én gang og lad det køre.

Konklusion og vigtigste pointer

Efter en weekend med tests er her, hvad der faktisk stod tilbage:

requests + BeautifulSoup er godt til læring, men begrænsningen med lazy loading (kun cirka 30 af 50 produkter) og skrøbelige CSS selectors gør det upraktisk til produktion.

Selenium løser lazy-loading-problemet og henter alle 50 produkter pr. side, men det er langsomt, tungt på hukommelsen og kan stadig opdages af Amazons bot-forsvar.

Scraping APIs giver den bedste driftssikkerhed til scraping i produktion — på Amazon — men prisen vokser, og du skal stadig skrive parsing-kode.

Thunderbit gav klart den hurtigste tid fra data til resultat. AI’en håndterer layoutændringer, lazy loading, paginering og anti-bot-forsvar uden nogen konfiguration. For ikke-tekniske brugere eller teams, der har brug for løbende data uden DevOps-overhead, er det den mest praktiske løsning.

Den største lektie? Amazons anti-bot-forsvar og hyppige layoutændringer betyder, at løsninger uden vedligeholdelse sparer mest tid på længere sigt. Hver time, du bruger på at fejlfinde ødelagte selectors og rotere proxies, er en time, du ikke bruger på selve analysen.

Vil du prøve no-code-tilgangen? giver dig nok credits til at scrape et par Best Sellers-kategorier og se resultaterne selv. Foretrækker du Python-vejen? Kodeeksemplerne ovenfor burde få dig i gang. Uanset hvad ender du med Amazon Best Seller-data i et regneark i stedet for at stirre på en browserfane.

Vil du vide mere om webscraping-tilgange, så tjek vores guides om , og . Du kan også se trin-for-trin-gennemgange på .

Læs mere

Indholdsfortegnelse

Prøv Thunderbit

Hent leads og andre data med kun 2 klik. Drevet af AI.

Hent Thunderbit Det er gratis
Udtræk data med AI
Overfør nemt data til Google Sheets, Airtable eller Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week