Minulý víkend jsem při zkoušení čtyř různých způsobů, jak získat data z Amazon Best Sellers, vypil celý hrnec kávy. Dva postupy fungovaly skvěle, jeden mě málem dostal na blacklist IP adresy a jeden zvládnul celý úkol doslova na jeden klik. Tady je všechno, co jsem zjistil.
Amazon je obrovský marketplace — 600 milionů produktových listingů, více než 310 milionů aktivních zákaznických účtů a systém Best Sellers Rank (BSR), který se aktualizuje každou hodinu. Pokud děláte průzkum produktů pro FBA, analýzu konkurenčních cen nebo se jen snažíte odhalit trendy dřív než konkurence, data z Best Sellers jsou k nezaplacení.
Jenže dostat ta data z Amazonu do tabulky? Tam to začíná být zajímavé. Otestoval jsem requests + BeautifulSoup, Selenium, scraping API a Thunderbit (náš vlastní no-code AI web scraper), abych zjistil, který přístup opravdu funguje — a které vás nechají jen zírat na stránku s CAPTCHA.
Co je Amazon Best Sellers (a proč by vás to mělo zajímat)?
Amazon Best Sellers Rank (BSR) je žebříček Amazonu v reálném čase, který řadí produkty podle objemu prodeje v rámci každé kategorie. Představte si ho jako soutěž popularity, která se aktualizuje každou hodinu na základě čerstvých i historických prodejních dat. Sám Amazon to popisuje takto:
„Výpočet Amazon Best Sellers vychází z prodejů na Amazonu a aktualizuje se každou hodinu, aby odrážel nedávné i historické prodeje každé položky prodané na Amazonu.“ — Amazon Seller Central
Stránka Best Sellers ukazuje 100 nejlepších produktů v každé kategorii, rozdělených do dvou stránek po 50 položkách. Stránka 1 obsahuje pozice #1–50, stránka 2 pozice #51–100. Amazon potvrdil, že počet zobrazení stránky ani zákaznické recenze BSR neovlivňují — rozhodují čistě prodeje.
Kdo tato data potřebuje? Prodejci e-commerce hledající produkty pro FBA, obchodní týmy budující konkurenční přehled, operations týmy sledující cenové trendy a market research týmy monitorující růst kategorií. Podle mých zkušeností nakonec každý, kdo prodává na Amazonu nebo s Amazonem soutěží, tato data dříve či později potřebuje v tabulce.
Proč stahovat Amazon Best Sellers pomocí Pythonu?
Ruční průzkum produktů je žrout času. Studie McKinsey zjistila, že zaměstnanci stráví 9,3 hodiny týdně jen vyhledáváním a sběrem informací. U e-commerce týmů to znamená hodiny klikaní po stránkách Amazonu, kopírování názvů a cen produktů a jejich vkládání do tabulek — a za týden celý proces zopakovat znovu.
Tady je rychlý přehled use caseů, kvůli kterým se vyplatí Best Sellers scrapovat:
| Use Case | Co získáte | Kdo z toho těží |
|---|---|---|
| Průzkum FBA produktů | Identifikujte produkty s vysokou poptávkou a nízkou konkurencí podle BSR a počtu recenzí | Prodejci na Amazonu, dropshippeři |
| Konkurenční cenotvorba | Sledujte změny cen u nejprodávanějších produktů ve vaší kategorii | E-commerce týmy, cenoví analytici |
| Sledování trendů na trhu | Odhalte rostoucí kategorie a sezónní výkyvy | Produktoví manažeři, market research týmy |
| Lead generation | Vytvořte seznamy nejprodávanějších značek a jejich produktových řad | Obchodní týmy, B2B outreach |
| Analýza konkurence | Porovnejte své produkty s lídry kategorie | Brand manažeři, strategické týmy |
Návratnost je reálná: průzkum Salesforce mezi 2 700 specialisty v commerce ukázal, že AI nástroje ušetří e-commerce profesionálům v průměru 6,4 hodiny týdně. A prodejci používající automatizované sledování cen drží Buy Box 67 % času, zatímco ruční trackery jen 42 % — tedy 37% nárůst prodejů díky rychlejším reakcím na změny cen.
4 způsoby, jak stáhnout Amazon Best Sellers pomocí Pythonu: rychlé srovnání
Než se pustíme do krokových návodů, tady je srovnání vedle sebe, které bych si býval přál mít už na začátku testování. Tahle tabulka vám pomůže vybrat správnou metodu podle situace:
| Kritérium | requests + BS4 | Selenium | Scraping API (např. Scrape.do) | Thunderbit (No-Code) |
|---|---|---|---|---|
| Náročnost nastavení | Střední | Vysoká (driver, prohlížeč) | Nízká (API klíč) | Velmi nízká (Chrome rozšíření) |
| Zvládá lazy loading | Ne | Ano (simulace scrollu) | Ano (renderované HTML) | Ano (AI zvládne rendering) |
| Odolnost proti botům | Nízká (blokace IP) | Střední (detekovatelné) | Vysoká (rotující proxy) | Vysoká (cloud + browser režim) |
| Údržba | Vysoká (rozbíjejí se selektory) | Vysoká (aktualizace driveru + selektorů) | Nízká | Velmi nízká (AI se přizpůsobí změnám layoutu) |
| Cena | Zdarma | Zdarma | Placené (za požadavek) | Free tier + placené plány |
| Nejvhodnější pro | Jednorázové scrape, učení | Stránky s JS, loginem | Škálování / produkce | Netechnické uživatele, rychlý průzkum, pravidelný monitoring |
Pokud se chcete naučit základy scrapování v Pythonu, začněte metodou 1 nebo 2. Pokud potřebujete spolehlivost v produkčním měřítku, zvolte metodu 3. Pokud chcete výsledky na jeden klik bez psaní kódu, skočte rovnou na metodu 4.
Než začnete
- Obtížnost: Začátečník až mírně pokročilý (podle metody)
- Časová náročnost: ~15 minut pro Thunderbit, ~45 minut pro Python metody
- Co budete potřebovat: Python 3.8+ (pro metody 1–3), prohlížeč Chrome, Thunderbit Chrome Extension (pro metodu 4) a URL cílové kategorie Amazon Best Sellers
Metoda 1: Scrape Amazon Best Sellers pomocí requests + BeautifulSoup
Tohle je lehký, začátečnický přístup — žádná automatizace prohlížeče, jen HTTP požadavky a parsování HTML. A také mě naučil nejvíc o anti-scraping obraně Amazonu.
Krok 1: Nastavte prostředí
Nainstalujte potřebné balíčky:
pip install requests beautifulsoup4 pandas
Pak si připravte importy:
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import time
Krok 2: Pošlete požadavek s realistickými hlavičkami
Amazon blokuje požadavky, které vypadají jako boti. Základní obranou je User-Agent hlavička, která napodobí skutečný prohlížeč. Tady je ukázka s aktuálním a realistickým seznamem User-Agent řetězců (zdroj: Geekflare, březen 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) # Mělo by být 200
Pokud vidíte status code 200, jste uvnitř. Pokud dostanete 503 nebo jste přesměrováni na CAPTCHA, Amazon váš požadavek označil jako podezřelý.
Krok 3: Parsujte data o produktech pomocí BeautifulSoup
Zkontrolujte HTML stránky Amazonu pomocí DevTools v prohlížeči (pravým tlačítkem → Inspect). Kontejnery produktů používají ID gridItemRoot. Uvnitř každého kontejneru najdete název produktu, cenu, hodnocení a 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})
Upozornění: Třídy s prefixem
_cDEzb_jsou hashované CSS moduly, které Amazon pravidelně generuje znovu. IDgridItemRoota třídaa-link-normalbývají stabilnější, ale selektory si před spuštěním scrapu vždy ověřte v DevTools.
Krok 4: Export do CSV
df = pd.DataFrame(products)
df.to_csv("amazon_best_sellers.csv", index=False)
print(f"Scraped {len(products)} products")
Co čekat — a co se pokazí
V mém testu tahle metoda vrátila asi 30 produktů místo 50. Není to chyba v kódu — je to lazy loading Amazonu. Při počátečním načtení stránky se vykreslí jen asi 30 produktů; zbytek se objeví až po scrollování, které vyžaduje JavaScript a requests ho nezvládne.
Další omezení:
- Bez rotace proxy se IP adresy blokují rychle (mně to při rychlé sérii asi 15 požadavků zablokovalo)
- CSS selektory se rozbíjejí, když Amazon upraví rozložení stránky — a dělá to pravidelně
- Chybí vestavěné zpracování stránkování
Na naučení Python scrapingu je to skvělé. Pro produkční použití je to ale křehké.
Metoda 2: Scrape Amazon Best Sellers pomocí Selenium
Selenium řeší problém lazy loadingu tím, že spouští skutečný prohlížeč — je náročnější na nastavení, ale načte všech 50 produktů na stránku.
Krok 1: Nainstalujte Selenium
pip install selenium pandas
Dobrá zpráva: od Selenium 4.6+ už nepotřebujete webdriver-manager. Selenium Manager si stáhne driver automaticky.
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)
Přepínač --headless=new (představený v Chrome 109+) používá stejný renderovací pipeline jako běžné Chrome, takže je pro Amazon hůř detekovatelný.
Krok 2: Přejeďte přes lazy loading
Tohle je krok, kvůli kterému Selenium stojí za tu režii. Amazon Best Sellers načte zpočátku jen asi 30 produktů — zbytek se zobrazí až po scrollování.
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)
Po scrollování by se v DOM mělo vykreslit všech 50 produktů. Zjistil jsem, že 5 stisků Page Down s 2sekundovou pauzou stačí, ale podle rychlosti připojení to možná budete muset upravit.
Krok 3: Extrahujte data o produktech
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})
Zabalení každého výběru do try/except je důležité — některé produkty mohou být vyprodané nebo mohou chybět některá pole, a nechcete, aby vám jeden chybný prvek shodil celý scraping.
Krok 4: Ošetřete stránkování
Amazon rozděluje 100 položek Best Sellers na dvě stránky s různou strukturou URL:
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)
# ... extrakce produktů jako výše ...
all_products.extend(products)
driver.quit()
Co čekat
V mém testu Selenium zachytilo všech 50 produktů na stránku — jasné vítězství nad requests + BS4. Nevýhoda: trvalo to asi 45 sekund na stránku (včetně prodlev při scrollování), a přesto jsem byl po příliš mnoha opakováních bez rotace proxy označen jako podezřelý. Selenium je navíc pro Amazon detekovatelné i s anti-detection příznaky — pro seriózní škálování budete potřebovat další opatření (viz Anti-Ban Playbook níže).
Další bolestivé body:
- Občas se stále stává nesoulad verzí WebDriveru, i když Selenium Manager to hodně zjednodušil
- CSS selektory je potřeba upravovat pokaždé, když Amazon změní DOM
- Spotřeba paměti je vysoká — každá instance prohlížeče ukousne 200–400 MB RAM
Metoda 3: Scrape Amazon Best Sellers pomocí Scraping API
Scraping API jsou přístup typu „nechte těžkou práci na někom jiném“. Služby jako Scrape.do, Oxylabs a ScrapingBee zajišťují rotaci proxy, rendering JavaScriptu a anti-bot opatření — vy pošlete URL a dostanete zpět HTML nebo JSON.
Jak to funguje
Cílovou URL pošlete na endpoint API. API stránku vyrenderuje pomocí skutečného prohlížeče na své infrastruktuře, otáčí proxy, řeší CAPTCHA a vrátí čisté HTML. Vy pak vrácené HTML standardně parsujete pomocí BeautifulSoup.
Krok 1: Pošlete požadavek přes API
Tady je příklad se Scrape.do (ceny začínají na 29 USD/měsíc za 150 000 kreditů, 1 kredit = 1 požadavek bez ohledu na 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")
Dál je parsování stejné jako u metody 1 — stejné selektory, stejná logika extrakce.
Realita cen
Tady je přehled, kolik si hlavní API účtují za 1 000 Amazon požadavků v jejich nejlepší dostupné sazbě:
| Poskytovatel | Cena za 1 000 požadavků | Poznámky |
|---|---|---|
| Scrape.do | ~0,19 $ | Paušální sazba, bez násobitelů kreditů |
| Oxylabs | ~1,80 $ | 5× násobitel pro JS rendering |
| ScrapingBee | ~4,90 $ | 5–25× násobitel pro prémiové funkce |
| Bright Data | 5,00 $+ | Nejširší data (686 polí/produkt), ale nejpomalejší (~66 s/požadavek) |
Klady a zápory
Klady: Vysoká spolehlivost (~99% úspěšnost na Amazonu u nejlepších providerů), žádná údržba driverů, automatické řešení anti-bot obrany, dobré škálování.
Zápory: Platíte za každý požadavek (ve velkém to roste), stále musíte napsat parsovací kód, a stále jste citliví na změny CSS selektorů. Při 100 000 stránek měsíčně je rozdíl v celkových nákladech dramatický: vlastní řešení vyjde zhruba na $1,98M za tři roky oproti $332K u API providera — tedy úspora 71 %.
Bod zlomu bývá typicky 500 tisíc až 1 milion požadavků měsíčně. Pod tímto limitem úspora času API obvykle převáží nad cenou.
Metoda 4: Scrape Amazon Best Sellers pomocí Thunderbit (bez Pythonu)
Úplné přiznání: pracuji v Thunderbit, takže tuhle část berte v tomto kontextu. Ale opravdu jsem všechny čtyři metody testoval těsně po sobě a rozdíl v tom, jak rychle se dostanete k datům, byl výrazný.
Thunderbit je AI web scraper, který běží jako Chrome rozšíření. Hlavní myšlenka: místo psaní CSS selektorů nebo Python kódu AI přečte stránku a sama určí, která data má vytáhnout. Pro Amazon Best Sellers má Thunderbit předpřipravené šablony, které fungují na jeden klik.
Krok 1: Nainstalujte rozšíření Thunderbit pro Chrome
Jděte do Chrome Web Store a klikněte na „Add to Chrome“. Založte si bezplatný účet — free verze vám dá dost kreditů na vyzkoušení.
Krok 2: Otevřete stránku Amazon Best Sellers
Otevřete v Chrome libovolnou stránku kategorie Amazon Best Sellers. Například:
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/
Krok 3: Klikněte na „One Click Extract“
Otevřete postranní panel Thunderbit a klikněte na „One Click Extract“. AI analyzuje strukturu stránky a vyhodnotí sloupce: Product Name, Price, Rating, Image URL, Vendor, Product URL a Rank. V mém testu správně identifikovala všechna relevantní pole během zhruba 3 sekund.

Můžete přejmenovat, odstranit nebo přidat sloupce. Dokonce lze přidat vlastní AI prompt pro každé pole — například „zařaď jako Electronics/Apparel/Home“ a přidat ke každému produktu tag kategorie.
Krok 4: Klikněte na „Scrape“
Stiskněte tlačítko „Scrape“. Thunderbit naplní strukturovanou tabulku všemi daty o produktech ze stránky. V cloud režimu zpracuje až 50 stránek současně paralelně a automaticky řeší lazy loading i stránkování.
Krok 5: Exportujte zdarma
Klikněte na „Export“ a vyberte cíl: Excel, Google Sheets, Airtable nebo Notion. Všechny exporty jsou zdarma ve všech plánech — žádné skryté poplatky.

Celý proces mi od otevření stránky po hotovou tabulku zabral asi 90 sekund. Pro srovnání: metoda 1 trvala zhruba 20 minut (včetně ladění problému s lazy loadingem), metoda 2 asi 35 minut (včetně nastavení Selenium) a metoda 3 asi 15 minut (včetně založení API účtu).
Proč si Thunderbit s Amazonem poradí dobře
Protože AI pokaždé čte stránku znovu od začátku, automaticky se přizpůsobí změnám layoutu — není potřeba udržovat CSS selektory. To přímo řeší nejčastější stížnost ve scraping fórech: „Základní web scraper nestačí, musíte přidávat spoustu zachytávání změn elementů.“ Když Amazon změní DOM (což dělá pravidelně), nemusíte nic upravovat.
Cloud scraping režim transparentně řeší rotaci proxy, rendering i anti-bot ochranu. Pro uživatele, kteří chtějí řešení typu „prostě to funguje“, tím odpadá celé trápení s blokací.
Ušetřete si údržbu selektorů Když Amazon změní značkování stránky, vaše BeautifulSoup selektory se rozbijí. AI v Thunderbitu si při každém spuštění stránku znovu načte a pole znovu určí. Get Started Free
Anti-Ban playbook: jak se nenechat zablokovat Amazonem
Amazon má agresivní detekci botů. Při testování mi dočasně zablokoval IP a podobné zkušenosti popisují i uživatelé na fórech: „chyby všude, Amazon mě dokonce začal přesměrovávat na homepage.“ Pokud jdete cestou Pythonu (metody 1–3), je tahle část zásadní.
Tady je vrstvená strategie od základní po pokročilou:
1. Střídejte User-Agent řetězce
Opakované posílání stejného User-Agentu je varovný signál. Použijte sadu 5+ řetězců z ukázky v metodě 1 a pro každý požadavek vyberte náhodný:
headers = {"User-Agent": random.choice(USER_AGENTS)}
2. Přidávejte náhodné prodlevy mezi požadavky
Pevné pauzy jsou rozpoznatelné podle vzoru. Náhodné jsou bezpečnější:
time.sleep(random.uniform(2, 5))
Zjistil jsem, že pauzy 2–5 sekund mezi požadavky mě udržely pod radarem u menších dávek (pod 50 požadavků). U větších běhů je zvedněte na 3–7 sekund.
3. Používejte rotaci proxy
Tohle je zásadní věc. Benchmarky Proxyway ukazují, že residential proxy mají na Amazonu úspěšnost kolem ~94 %, zatímco datacentrové proxy jen ~59 % — rozdíl 35 procentních bodů. Detekční stack Amazonu zahrnuje TLS fingerprinting, behaviorální analýzu a rate limiting na úrovni IP, takže standardní datacentrové IP adresy bývají odhaleny během pár sekund.
Residential proxy jsou dražší (2–12 $ za GB podle providera), ale výrazně spolehlivější. Příklad:
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. Zpevněte fingerprint prohlížeče (Selenium)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# Po inicializaci driveru odstraňte flag navigator.webdriver
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
5. Spravujte session a cookies
Uchování cookies mezi požadavky dělá váš scraper víc podobný reálnému uživatelskému sezení:
session = requests.Session()
# Nejprve navštivte homepage, aby se získaly realistické cookies
session.get("https://www.amazon.com", headers=headers)
time.sleep(2)
# Pak scrapujte cílovou stránku
response = session.get(target_url, headers=headers)
6. Kdy se trápení raději úplně vyhnout
Pro uživatele, kteří nic z toho nechtějí spravovat, cloud scraping v Thunderbitu řeší rotaci proxy, rendering i anti-bot opatření transparentně. Scraping API navíc většinu těchto věcí řeší automaticky. Podle mých zkušeností často zabere ladění anti-ban problémů víc času než samotné napsání scrapovacího kódu — a přístup „prostě to funguje“ má tedy skutečnou návratnost.
Obohacení podstránek: scraping detailních stránek produktů pro bohatší data
Listing Best Sellers ukazuje jen základní informace — název, cenu, hodnocení, rank. Ale skutečná hodnota pro FBA průzkum je na detailních stránkách jednotlivých produktů. Tady je, co vám uniká, pokud scrapujete jen listing:
| Pole | Listing stránka | Detail produktu |
|---|---|---|
| Název produktu | ✅ | ✅ |
| Cena | ✅ | ✅ |
| Hodnocení | ✅ | ✅ |
| BSR Rank | ✅ | ✅ (včetně subkategoriálních ranků) |
| Značka | ❌ | ✅ |
| ASIN | ❌ | ✅ |
| Datum první dostupnosti | ❌ | ✅ |
| Rozměry / hmotnost | ❌ | ✅ |
| Počet prodejců | ❌ | ✅ |
| Bodové funkce | ❌ | ✅ |
| Vlastník Buy Boxu | ❌ | ✅ |
Pole „Datum první dostupnosti“ je obzvlášť cenné — napoví, jak dlouho je produkt na trhu, což je klíčový signál pro analýzu konkurence. A znalost počtu prodejců a vlastníka Buy Boxu pomáhá posoudit, jestli se do dané produktové nicky vůbec vyplatí vstupovat (pokud Amazon drží více než 30 % podílu na Buy Boxu, je konkurence extrémně těžká).
Přístup v Pythonu: procházení URL produktů v cyklu
Po získání URL produktů z listing stránky projděte každý odkaz s pauzou:
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")
# Extrakce značky
brand_tag = detail_soup.find("a", id="bylineInfo")
product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
# Extrakce ASIN z HTML nebo URL
# Extrakce data první dostupnosti z tabulky detailů produktu
# ... další pole ...
Pozor: návštěva 100 jednotlivých produktových stránek výrazně zvyšuje riziko blokace. Počítejte s rotací proxy a delšími pauzami.
Přístup Thunderbit: detailní scraping podstránek na jeden klik
Po scrapování listing stránky do tabulky klikněte v Thunderbitu na „Scrape Subpages“. AI navštíví každou produktovou URL a obohatí tabulku o další sloupce — značka, ASIN, specifikace, funkce — automaticky. Žádný další kód, selektory ani nastavování. To je obzvlášť užitečné pro e-commerce týmy, které potřebují celý obraz pro sourcing rozhodnutí, ale nechtějí psát a udržovat parser detailních stránek.
Automatizace opakovaných scrapeů: sledujte Best Sellers v čase
Jednorázový scrape je užitečný, ale průběžný monitoring je místo, kde se rodí skutečná konkurenční výhoda. Sledování produktů, které rostou a klesají, včasné odhalování trendů a monitoring změn cen během týdnů nebo měsíců — to je rozdíl mezi náhodným průzkumem a rozhodováním založeným na datech.
Přístup v Pythonu: plánování pomocí cron
Na Linuxu a Macu můžete svůj Python skript naplánovat pomocí cronu. Tady je záznam v crontabu pro denní scraping v 8:00:
0 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
Pro týdenní scraping v pondělí v 9:00:
0 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
Na Windows můžete použít Task Scheduler a dosáhnout stejného výsledku. Pokud chcete plánování bez nutnosti nechávat běžet notebook, nasadíte skript na VPS nebo AWS Lambda — ale tím přidáváte další vrstvu infrastruktury.
Doplněte logování a notifikace chyb, abyste zachytili neúspěšné běhy. Není nic horšího než zjistit, že vám scraper tiše přestal fungovat už před dvěma týdny.
Přístup Thunderbit: Scheduled Scraper v běžné řeči
Scheduled Scraper v Thunderbitu vám umožní popsat interval přirozeným jazykem — napište „každé pondělí v 9:00“ nebo „každý den v 8:00“ a AI si plán vyloží. Scrapy běží na cloud serverech Thunderbitu (nemusí být spuštěný žádný prohlížeč ani počítač) a data se automaticky exportují do Google Sheets nebo Airtable. Vznikne tím živý monitoring dashboard bez správy serverů — ideální pro operations týmy, které chtějí mít přehled bez DevOps režie.
Právní a etické aspekty scrapování Amazonu
Nejsem právník a tohle není právní rada. Ignorovat právní rámec v návodu na scraping by ale bylo nezodpovědné — uživatelé na fórech na témata podmínek užívání upozorňují a právem.
robots.txt Amazonu: K roku 2026 obsahuje robots.txt Amazonu více než 80 konkrétních cest s Disallow, ale /gp/bestsellers/ není pro běžné user agenty výslovně blokováno. Nicméně více než 35 user agentů zaměřených na AI (ClaudeBot, GPTBot, Scrapy atd.) dostává plošný Disallow: /. To, že není něco výslovně zakázáno, neznamená, že Amazon scraping schvaluje.
Podmínky používání Amazonu: Amazon ve svých Conditions of Use (aktualizováno v květnu 2025) výslovně zakazuje „používání jakéhokoli automatizovaného procesu nebo technologie k přístupu, získávání, kopírování nebo monitorování jakékoli části webu Amazonu“ bez písemného povolení. Není to hypotéza — Amazon v listopadu 2025 zažaloval Perplexity AI kvůli neoprávněnému automatizovanému přístupu a získal předběžné opatření.
Precedent hiQ v. LinkedIn: V případu hiQ Labs v. LinkedIn (Ninth Circuit, 2022) soud rozhodl, že scrapování veřejně dostupných dat pravděpodobně neporušuje Computer Fraud and Abuse Act. hiQ ale nakonec uzavřelo smír a souhlasilo se zastavením scrapingu — výhra podle CFAA vás nechrání před nároky z porušení smlouvy.
Praktická pravidla:
- Scrapujte jen veřejně dostupná data (ceny, BSR, názvy produktů — ne PII)
- Respektujte rate limity a nepřetěžujte servery
- Používejte data pro legitimní konkurenční zpravodajství
- Před scrapingem ve velkém se poraďte s vlastním právním zástupcem
- Uvědomte si, že více než 20 států USA má dnes komplexní legislativu o ochraně soukromí
Cloud scraping v Thunderbitu používá standardní requesty podobné běžnému prohlížeči, ale vždy byste měli ověřit soulad s vlastní právní konzultací.
Tady Python nepotřebujete Pokud je cílem tabulka a ne pipeline, dostanete se tam na jeden klik. Exportujte rovnou do Excelu, Google Sheets, Airtable nebo Notion. Get Started Free
Kterou metodu byste měli použít? Rychlý rozhodovací průvodce
Stručně řečeno:
- „Učím se Python a chci víkendový projekt.“ → Metoda 1 (requests + BeautifulSoup). Naučíte se spoustu o HTTP požadavcích, parsování HTML a anti-bot obraně Amazonu.
- „Potřebuji scrapovat stránky s těžkým JavaScriptem nebo přihlášené session.“ → Metoda 2 (Selenium). Je těžší, ale zvládne dynamický obsah.
- „Spouštím produkční scraping ve velkém.“ → Metoda 3 (Scraping API). Nechte správu proxy a renderingu na někom jiném. Celkové náklady na vlastnictví vycházejí lépe pro API pod 500K požadavků měsíčně.
- „Nejsem developer a chci data za 2 minuty.“ → Metoda 4 (Thunderbit). Žádný kód, žádné selektory, žádná údržba.
- „Potřebuji průběžný monitoring bez správy serveru.“ → Thunderbit Scheduled Scraper. Nastavíte a zapomenete.
Vyzkoušejte Thunderbit pro Amazon Best Sellers Get Started Free
Závěr a hlavní poznatky
Po víkendu testování mi zůstalo hlavně tohle:
requests + BeautifulSoup je skvělé na učení, ale omezení lazy loadingu (jen asi 30 z 50 produktů) a křehké CSS selektory z něj dělají nepraktické řešení pro produkci.
Selenium řeší lazy loading a načte všech 50 produktů na stránku, ale je pomalé, žere paměť a Amazon ho pořád umí detekovat.
Scraping APIs nabízejí nejlepší spolehlivost pro produkční scraping — ~99% úspěšnost na Amazonu — ale náklady rostou a stejně musíte napsat parsovací kód.
Thunderbit měl zdaleka nejrychlejší cestu k datům. AI zvládá změny layoutu, lazy loading, stránkování i anti-bot opatření bez jakéhokoli nastavování. Pro netechnické uživatele nebo týmy, které potřebují opakovaná data bez DevOps režie, je to nejpraktičtější volba.
Největší lekce? Anti-bot obrana Amazonu a časté změny layoutu znamenají, že řešení bez údržby ušetří z dlouhodobého hlediska nejvíc času. Každá hodina strávená laděním rozbitých selektorů a rotací proxy je hodina, kterou nevěnujete skutečné analýze.
Chcete vyzkoušet no-code přístup? Free tier Thunderbitu vám dá dost kreditů na to, abyste mohli vytáhnout několik kategorií Best Sellers a vidět výsledky na vlastní oči. Preferujete Python? Výše uvedené ukázky kódu by vám měly pomoci začít. Ať tak či onak, budete mít data z Amazon Best Sellers v tabulce místo civění do záložky v prohlížeči.
Více o přístupech k web scrapingu najdete v našich průvodcích scrapingem produktů a recenzí z Amazonu, extrakcí dat z webu do Excelu a nejlepšími AI web scrapery. Můžete si také pustit krokové návody na YouTube kanálu Thunderbit.
Zjistěte více


