Am testat 4 metode de a extrage Amazon Best Sellers cu Python și ...

Ultima actualizare pe April 17, 2026

Weekendul trecut am băut cafea după cafea încercând să extrage Amazon Best Sellers în patru moduri diferite. Două au mers foarte bine, unul era cât pe ce să-mi blocheze IP-ul, iar unul a avut nevoie, efectiv, de doar două clickuri. Iată tot ce am învățat.

Amazon este un gigant adevărat al comerțului online — , și un sistem Best Sellers Rank (BSR) care se actualizează din oră în oră. Dacă faci cercetare de produse FBA, analiză de prețuri ale concurenței sau pur și simplu încerci să prinzi tendințele înaintea rivalilor, datele Best Sellers sunt o mină de aur.

Dar cum scoți datele astea din Amazon și le pui într-un spreadsheet? Aici începe partea interesantă. Am testat requests + BeautifulSoup, Selenium, un scraping API și (propriul nostru AI web scraper fără cod) ca să văd ce metodă chiar dă rezultate — și care te lasă doar uitându-te neajutorat la o pagină CAPTCHA.

Ce sunt Amazon Best Sellers și de ce ar trebui să-ți pese?

Amazon Best Sellers Rank (BSR) este clasamentul în timp real al Amazon, care ordonează produsele după volumul vânzărilor din fiecare categorie. Gândește-te la el ca la un concurs de popularitate, actualizat din oră în oră, pe baza datelor de vânzări recente și istorice. Chiar Amazon îl descrie așa:

„Calculul Amazon Best Sellers se bazează pe vânzările Amazon și se actualizează din oră în oră pentru a reflecta vânzările recente și istorice ale fiecărui articol vândut pe Amazon.” —

Pagina Best Sellers afișează top 100 produse din fiecare categorie, împărțite în două pagini a câte 50. Pagina 1 acoperă locurile #1–50, iar pagina 2 locurile #51–100. Amazon a confirmat că vizualizările și recenziile NU influențează BSR — contează exclusiv vânzările.

Cine are nevoie de aceste date? Vânzătorii e-commerce care caută produse pentru FBA, echipele de vânzări care construiesc intelligence competitiv, echipele de operațiuni care urmăresc tendințele de preț și cercetătorii de piață care monitorizează creșterea unei categorii. Din experiența mea, oricine vinde pe Amazon sau concurează cu Amazon ajunge, mai devreme sau mai târziu, să aibă nevoie de aceste date într-un spreadsheet.

De ce să extragi Amazon Best Sellers cu Python?

Cercetarea manuală de produse consumă enorm de mult timp. Un a arătat că angajații petrec 9,3 ore pe săptămână doar căutând și adunând informații. Pentru echipele e-commerce, asta înseamnă ore întregi pierdute dând click prin pagini Amazon, copiind nume de produse și prețuri și lipindu-le în spreadsheet-uri — ca apoi să repete totul săptămâna următoare.

Iată, pe scurt, cazurile de utilizare care fac meritată extragerea datelor Best Sellers:

Caz de utilizareCe obțiiCine beneficiază
Cercetare de produse FBAIdentifici produse cu cerere mare și competiție redusă folosind BSR și numărul de recenziiVânzători Amazon, dropshipperi
Analiză competitivă de prețUrmărești schimbările de preț la produsele de top din categoria taEchipe e-commerce, analiști de pricing
Monitorizarea tendințelor piețeiDepistezi categoriile în creștere și schimbările sezoniereProduct manageri, cercetători de piață
Generare de lead-uriConstruiești liste cu branduri de top și liniile lor de produseEchipe de vânzări, outreach B2B
Analiza concurențeiÎți compari produsele cu liderii din categorieBrand manageri, echipe de strategie

Rentabilitatea este reală: un făcut pe 2.700 de profesioniști din comerț a arătat că instrumentele AI economisesc, în medie, pentru specialiștii e-commerce. Iar vânzătorii care folosesc monitorizarea automată a prețurilor țin Buy Box-ul , față de 42% în cazul urmăririi manuale — o creștere de 37% a vânzărilor, determinată de reacții mai rapide la schimbările de preț.

4 moduri de a extrage Amazon Best Sellers cu Python: comparație rapidă

Înainte să intrăm în tutorialele pas cu pas, iată comparația side-by-side pe care mi-aș fi dorit s-o am înainte să încep testele. Tabelul de mai jos te ajută să alegi metoda potrivită pentru situația ta:

Criteriurequests + BS4SeleniumScraping API (de ex. Scrape.do)Thunderbit (fără cod)
Dificultate configurareMedieMare (driver, browser)Redusă (cheie API)Foarte redusă (extensie Chrome)
Gestionează lazy loadingNuDa (simulare de scroll)Da (HTML randat)Da (AI gestionează randarea)
Rezistență la anti-botScăzută (blocări IP)Medie (detectabil)Ridicată (proxy-uri rotative)Ridicată (mod cloud + browser)
Efort de mentenanțăMare (se rup selectorii)Mare (update-uri driver + selectorii)RedusFoarte redus (AI se adaptează la schimbări de layout)
CostGratuitGratuitPlătit (per request)Plan gratuit + planuri plătite
Cel mai bun pentruExtragere ocazională, învățarePagini cu mult JS, loginScalare / producțieNon-developeri, research rapid, monitorizare recurentă

Dacă vrei să înveți fundamentele de web scraping în Python, începe cu metoda 1 sau 2. Dacă ai nevoie de fiabilitate la nivel de producție, mergi pe metoda 3. Dacă vrei rezultate în două clickuri, fără să scrii cod, sari direct la metoda 4.

Înainte să începi

  • Dificultate: Începător spre intermediar (în funcție de metodă)
  • Timp necesar: ~15 minute pentru Thunderbit, ~45 minute pentru metodele Python
  • De ce ai nevoie: Python 3.8+ (pentru Metodele 1–3), browser Chrome, (pentru Metoda 4) și un URL de categorie Amazon Best Sellers

Metoda 1: Extragerea Amazon Best Sellers cu requests + BeautifulSoup

Aceasta este abordarea simplă, potrivită pentru începători — fără automatizare de browser, doar request-uri HTTP și parsare HTML. Tot ea m-a învățat cel mai mult despre sistemele Amazon de apărare împotriva scraping-ului.

Pasul 1: Configurează mediul

Instalează pachetele necesare:

1pip install requests beautifulsoup4 pandas

Apoi setează importurile:

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

Pasul 2: Trimite un request cu headere realiste

Amazon blochează request-urile care arată ca venind de la boți. Cea mai simplă apărare este un header User-Agent care imită un browser real. Iată un fragment cu un set de stringuri User-Agent actuale și credibile (sursă: , martie 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)  # Ar trebui să fie 200

Dacă vezi codul 200, ești pe drumul bun. Dacă vezi 503 sau ajungi redirecționat către o pagină CAPTCHA, Amazon ți-a semnalat request-ul.

Pasul 3: Parsează datele produselor cu BeautifulSoup

Inspectează HTML-ul paginii Amazon în DevTools din browser (click dreapta → Inspect). Containerele produselor folosesc ID-ul gridItemRoot. În interiorul fiecărui container găsești numele produsului, prețul, ratingul și URL-ul.

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

Atenție: Clasele cu prefixul _cDEzb_ sunt hash-uri de module CSS pe care Amazon le regenerează periodic. ID-ul gridItemRoot și clasa a-link-normal sunt mai stabile, dar verifică mereu selectorii în DevTools înainte să rulezi scraperul.

Pasul 4: Exportă în CSV

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

La ce să te aștepți — și ce poate merge prost

În testul meu, această metodă a returnat aproximativ 30 de produse în loc de 50. Nu e o eroare de cod — este lazy loading-ul Amazon. Doar ~30 de produse se încarcă la prima randare a paginii; restul apar după scroll, ceea ce necesită execuție JavaScript, iar requests nu poate face asta.

Alte limitări:

  • Blocările IP apar rapid fără rotație de proxy-uri (eu am fost blocat după aproximativ 15 request-uri trimise în succesiune rapidă)
  • Selectorii CSS se rup atunci când Amazon își actualizează layout-ul paginii — și o fac frecvent
  • Nu există gestionare de paginare din start

Pentru a învăța web scraping în Python, abordarea asta este excelentă. Pentru uz în producție, însă, e fragilă.

Metoda 2: Extragerea Amazon Best Sellers cu Selenium

Selenium rezolvă problema lazy loading-ului rulând un browser real — configurarea e mai grea, dar capturează toate cele 50 de produse de pe pagină.

Pasul 1: Instalează Selenium

1pip install selenium pandas

Veste bună: începând cu Selenium 4.6+, nu mai ai nevoie de webdriver-manager. Selenium Manager se ocupă automat de descărcarea driverelor.

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)

Flag-ul --headless=new (introdus în Chrome 109+) folosește același pipeline de randare ca Chrome-ul normal, ceea ce face mai dificilă detectarea de către Amazon.

Pasul 2: Derulează pentru a trece de lazy loading

Aici devine Selenium justificat, în ciuda configurării mai greoaie. Amazon Best Sellers încarcă inițial doar ~30 de produse — restul apar după scroll.

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)

După scroll, toate cele 50 de produse ar trebui să fie randate în DOM. Eu am constatat că 5 scroll-uri Page Down cu o întârziere de 2 secunde au fost suficiente, dar s-ar putea să fie nevoie de ajustări în funcție de viteza conexiunii.

Pasul 3: Extrage datele produselor

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

Încadrarea fiecărei extrageri în try/except este importantă — unele produse pot fi epuizate sau pot avea câmpuri lipsă, iar tu nu vrei ca un singur element problematic să oprească întregul scrape.

Pasul 4: Gestionează paginarea

Amazon împarte 100 de Best Sellers în două pagini cu structuri de URL diferite:

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    # ... extrage produsele ca mai sus ...
11    all_products.extend(products)
12driver.quit()

La ce să te aștepți

În testele mele, Selenium a capturat toate cele 50 de produse de pe pagină — un câștig clar față de requests + BS4. Dezavantajul: a durat aproximativ 45 de secunde pe pagină (inclusiv întârzierile de scroll), și tot am fost semnalat după ce am rulat procesul prea des fără rotație de proxy-uri. Selenium este, de asemenea, detectabil de sistemele Amazon de bot detection chiar și cu flag-urile anti-detectare — pentru scară serioasă ai nevoie de măsuri suplimentare (vezi secțiunea Anti-Ban de mai jos).

Alte puncte dureroase:

  • Neconcordanțele de versiune WebDriver apar încă din când în când, deși Selenium Manager a redus mult problema
  • Selectorii CSS trebuie actualizați ori de câte ori Amazon își schimbă DOM-ul
  • Consumul de memorie este mare — fiecare instanță de browser înghite 200–400 MB de RAM

Metoda 3: Extragerea Amazon Best Sellers cu un scraping API

Scraping API-urile sunt varianta „lasă pe altcineva să se ocupe de partea grea”. Servicii precum Scrape.do, Oxylabs și ScrapingBee gestionează rotația proxy-urilor, randarea JavaScript și măsurile anti-bot — tu trimiți doar un URL și primești HTML sau JSON înapoi.

Cum funcționează

Trimiți URL-ul țintă către endpoint-ul API. API-ul randază pagina cu un browser real pe infrastructura lor, rotește proxy-urile, gestionează CAPTCHA-urile și returnează HTML curat. Apoi parsezi HTML-ul primit cu BeautifulSoup, ca de obicei.

Pasul 1: Trimite un request prin API

Iată un exemplu folosind Scrape.do (prețurile pornesc de la 29$/lună pentru 150.000 de credite, 1 credit = 1 request indiferent de randare):

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

De aici înainte, parsarea este identică cu metoda 1 — aceiași selectorii, aceeași logică de extragere.

Realitatea prețurilor

Iată ce taxează principalele API-uri pentru 1.000 de request-uri Amazon, la cel mai bun tarif disponibil:

ProviderCost per 1.000 de request-uriObservații
Scrape.do~0,19$Tarif fix, fără multiplicatori de credite
Oxylabs~1,80$Multiplicator 5x pentru randare JS
ScrapingBee~4,90$Multiplicatori 5–25x pentru funcții premium
Bright Data5,00$+Cele mai multe date (686 câmpuri/produs), dar și cel mai lent (~66 sec/request)

Avantaje și dezavantaje

Avantaje: Fiabilitate ridicată ( pe Amazon pentru furnizorii de top), fără mentenanță pentru drivere, gestionează automat anti-bot-ul, scalează bine.

Dezavantaje: Plată per request (costurile cresc rapid la scară), tot trebuie să scrii cod de parsare, iar selectorii CSS se pot rupe în continuare. Pentru 100.000 de pagini pe lună, comparația costurilor totale devine dramatică: construirea internă ajunge la aproximativ — o economie de 71%.

Punctul de echilibru este, de regulă, la 500K–1M request-uri pe lună. Sub acest prag, economiile de timp oferite de API justifică clar costul.

Metoda 4: Extragerea Amazon Best Sellers cu Thunderbit (fără Python)

Transparență totală: lucrez la Thunderbit, așa că ia această secțiune în contextul ăsta. Totuși, chiar am testat toate cele patru metode una după alta, iar diferența în timpul până la obținerea datelor a fost izbitoare.

este un AI web scraper care rulează ca extensie Chrome. Ideea de bază: în loc să scrii selectorii CSS sau cod Python, AI-ul citește pagina și își dă seama ce date trebuie extrase. Pentru Amazon Best Sellers, Thunderbit are template-uri predefinite care merg dintr-un singur click.

Pasul 1: Instalează extensia Thunderbit pentru Chrome

Intră în și apasă „Add to Chrome”. Creează-ți un cont gratuit — planul gratuit îți oferă suficiente credite ca să testezi soluția.

Pasul 2: Deschide pagina Amazon Best Sellers

Deschide în Chrome orice pagină de categorie Amazon Best Sellers. De exemplu: https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/

Pasul 3: Apasă „AI Suggest Fields”

Deschide bara laterală Thunderbit și apasă „AI Suggest Fields”. AI-ul analizează structura paginii și propune coloane precum: Product Name, Price, Rating, Image URL, Vendor, Product URL și Rank. În testul meu, a identificat corect toate câmpurile relevante în aproximativ 3 secunde.

amazon-thunderbit-product-data.webp

Poți redenumi, elimina sau adăuga coloane. Poți chiar să adaugi prompturi AI personalizate pentru fiecare câmp — de exemplu, „categorizează ca Electronics/Apparel/Home” pentru a adăuga o etichetă de categorie fiecărui produs.

Pasul 4: Apasă „Scrape”

Apasă butonul „Scrape”. Thunderbit completează un tabel structurat cu toate datele produselor de pe pagină. În modul cloud, procesează până la 50 de pagini simultan, în paralel, gestionând automat lazy loading-ul și paginarea.

Pasul 5: Exportă gratuit

Apasă „Export” și alege destinația: Excel, Google Sheets, Airtable sau Notion. Toate exporturile sunt gratuite pe orice plan — fără costuri ascunse.

product-data-export.webp

Întregul proces mi-a luat aproximativ 90 de secunde de la deschiderea paginii până la un spreadsheet complet. Pentru comparație, Metoda 1 a durat cam 20 de minute (inclusiv debugging pentru problema de lazy loading), Metoda 2 aproximativ 35 de minute (inclusiv configurarea Selenium), iar Metoda 3 în jur de 15 minute (inclusiv configurarea contului API).

De ce Thunderbit se descurcă bine cu Amazon

Pentru că AI-ul citește pagina de la zero de fiecare dată, se adaptează automat la schimbările de layout — nu ai de întreținut selectorii CSS. Asta rezolvă direct cea mai comună plângere din forumurile de scraping: „Un web scraper simplu nu e suficient, trebuie să adaugi o mulțime de ‘prinderi’ pentru schimbările elementelor.” Când Amazon își schimbă DOM-ul (lucru care se întâmplă frecvent), nu trebuie să actualizezi nimic.

Modul cloud de scraping gestionează transparent rotația proxy-urilor, randarea și măsurile anti-bot. Pentru utilizatorii care vor o soluție „doar merge”, asta elimină complet bătaia de cap cu blocările.

Strategia anti-ban: cum eviți blocarea de către Amazon

Detecția de boți la Amazon este agresivă. În timpul testelor mi-a fost blocat temporar IP-ul, iar utilizatorii de pe forumuri raportează același lucru: „erori peste tot, Amazon a început chiar să mă redirecționeze către homepage.” Dacă mergi pe varianta Python (Metodele 1–3), secțiunea asta este esențială.

Iată o strategie pe niveluri, de la elementar la avansat:

1. Rotește stringurile User-Agent

Trimiterea repetată a aceluiași User-Agent este un semnal de alarmă. Folosește setul de 5+ stringuri din exemplul de cod de la Metoda 1 și alege unul aleatoriu la fiecare request:

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

2. Adaugă întârzieri aleatorii între request-uri

Întârzierile fixe sunt ușor de detectat (apar ca un tipar). Cele aleatorii sunt mai sigure:

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

Am observat că 2–5 secunde între request-uri m-au ținut sub radar pentru loturi mici (sub 50 de request-uri). Pentru rulări mai mari, crește intervalul la 3–7 secunde.

3. Folosește rotația proxy-urilor

Asta e piesa importantă. arată că proxy-urile rezidențiale au o rată medie de succes de ~94% pe Amazon, față de ~59% pentru proxy-urile din datacenter — o diferență de 35 de puncte procentuale. Stack-ul de detecție Amazon include TLS fingerprinting, analiză comportamentală și limitare de rată per IP, așa că IP-urile standard din datacenter sunt semnalate în câteva secunde.

Proxy-urile rezidențiale sunt mai scumpe ($2–$12 per GB, în funcție de provider), dar sunt mult mai fiabile. Exemplu de cod:

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. Întărește fingerprint-ul browserului (Selenium)

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

Păstrarea cookie-urilor între request-uri face scraperul să semene mai mult cu o sesiune reală de utilizator:

1session = requests.Session()
2# Vizitează mai întâi homepage-ul pentru a obține cookie-uri realiste
3session.get("https://www.amazon.com", headers=headers)
4time.sleep(2)
5# Apoi extrage pagina țintă
6response = session.get(target_url, headers=headers)

6. Când să sari complet peste bătaia de cap

Pentru utilizatorii care nu vor să gestioneze nimic din toate astea, scraping-ul cloud din Thunderbit gestionează transparent rotația proxy-urilor, randarea și măsurile anti-bot. Și scraping API-urile rezolvă, de asemenea, majoritatea acestor probleme din start. Din experiența mea, timpul pierdut cu debugging-ul problemelor anti-ban depășește adesea timpul necesar pentru a scrie efectiv codul de scraping — deci varianta „doar merge” are un ROI real.

Îmbogățirea cu subpagini: extragerea paginilor de detaliu pentru date mai bogate

Pagina listing Best Sellers afișează doar informații de bază — titlu, preț, rating, poziție. Dar adevărata valoare pentru cercetarea FBA se află pe paginile individuale de detaliu ale produselor. Iată ce pierzi dacă extragi doar pagina de listare:

CâmpPagina de listarePagina de detaliu a produsului
Nume produs
Preț
Rating
Poziție BSR✅ (cu rankinguri pe subcategorie)
Brand
ASIN
Data primei apariții
Dimensiuni/greutate
Număr de vânzători
Caracteristici în bullet points
Deținător Buy Box

Câmpul „Date First Available” este deosebit de valoros — îți arată de cât timp este produsul pe piață, un semnal important pentru analiza concurenței. Iar numărul de vânzători și deținătorul Buy Box te ajută să evaluezi dacă merită să intri într-o nișă de produs (dacă Amazon însuși deține peste 30% din Buy Box, concurența este extrem de dificilă).

Abordarea Python: buclă prin URL-urile produselor

După ce colectezi URL-urile produselor din pagina de listare, parcurge fiecare produs cu o întârziere:

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    # Extrage brandul
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    # Extrage ASIN din sursa paginii sau din URL
9    # Extrage Date First Available din tabelul de detalii produs
10    # ... câmpuri suplimentare ...

Atenție: accesarea a 100 de pagini individuale de produs crește semnificativ riscul de blocare. Ia în calcul rotația proxy-urilor și întârzieri mai mari.

Abordarea Thunderbit: subpagini extrase dintr-un singur click

După ce extragi pagina de listare într-un tabel, apasă „Scrape Subpages” în Thunderbit. AI-ul vizitează fiecare URL de produs și îmbogățește tabelul cu coloane suplimentare — brand, ASIN, specificații, caracteristici — automat. Fără cod suplimentar, fără selectori, fără configurare. Este foarte util pentru echipele e-commerce care au nevoie de imaginea completă pentru decizii de sourcing, dar nu vor să scrie și să întrețină un parser pentru paginile de detaliu.

Automatizarea extragerilor recurente: monitorizarea Best Sellers în timp

Un scrape singular este util, dar monitorizarea continuă este locul unde apare adevăratul avantaj competitiv. Să urmărești ce produse urcă și coboară, să observi din timp tendințele și să monitorizezi schimbările de preț pe parcursul săptămânilor sau lunilor — asta diferențiază cercetarea ocazională de deciziile bazate pe date.

Abordarea Python: programare cu cron

Pe Linux/Mac, poți programa scriptul Python cu cron. Iată o intrare crontab pentru un scrape zilnic la 8:00 dimineața:

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

Pentru un scrape săptămânal luni la 9:00:

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

Pe Windows, folosește Task Scheduler pentru același rezultat. Pentru programare permanentă fără să ții laptopul pornit, poți implementa soluția pe un VPS sau AWS Lambda — dar asta adaugă complexitate de infrastructură.

Adaugă logging și notificări de eroare ca să prinzi execuțiile eșuate. Nu există nimic mai rău decât să descoperi că scraperul tău a picat fără să-ți spună nimic de două săptămâni.

Abordarea Thunderbit: Scheduled Scraper în limbaj simplu

Funcția Scheduled Scraper din Thunderbit îți permite să descrii intervalul în limbaj natural — scrii „în fiecare luni la 9” sau „în fiecare zi la 8” și AI-ul interpretează programarea. Extragerile rulează pe serverele cloud Thunderbit (nu trebuie să fie pornit nici browserul, nici calculatorul tău), iar datele se exportă automat în Google Sheets sau Airtable. Asta creează un dashboard de monitorizare live, fără administrare de servere — ideal pentru echipele de operațiuni care vor vizibilitate continuă fără povara DevOps.

Considerații legale și etice când extragi date din Amazon

Nu sunt avocat și acest text nu reprezintă consultanță juridică. Dar ar fi iresponsabil să ignorăm partea legală într-un tutorial de scraping — utilizatorii din forumuri ridică explicit întrebări despre ToS, și pe bună dreptate.

robots.txt-ul Amazon: În 2026, robots.txt-ul Amazon conține peste 80 de căi Disallow specifice, dar /gp/bestsellers/ NU este blocat explicit pentru user-agent-uri standard. Totuși, peste 35 de user-agent-uri specifice AI (ClaudeBot, GPTBot, Scrapy etc.) primesc un Disallow: / general. Absența unui disallow specific nu înseamnă că Amazon aprobă scraping-ul.

Termenii și condițiile Amazon: ale Amazon (actualizate în mai 2025) interzic explicit „utilizarea oricărui proces sau tehnologie automată pentru a accesa, obține, copia sau monitoriza orice parte a website-ului Amazon” fără permisiune scrisă. Nu este doar teorie — Amazon în noiembrie 2025 pentru acces automatizat neautorizat și a obținut o ordonanță preliminară.

Precedentul hiQ v. LinkedIn: În (Curtea de Apel a Circuitului 9, 2022), instanța a decis că extragerea datelor disponibile public probabil nu încalcă Computer Fraud and Abuse Act. Dar hiQ a ajuns în cele din urmă la o înțelegere și a acceptat să oprească scraping-ul — câștigarea pe CFAA nu te protejează de acuzații de încălcare a contractului.

Recomandări practice:

  • Extrage doar date publice (prețuri, BSR, titluri de produs — nu PII)
  • Respectă rate limit-urile și nu supraîncărca serverele
  • Folosește datele pentru intelligence competitiv legitim
  • Consultă propriul avocat înainte de scraping la scară mare
  • Fii conștient că au acum legislație cuprinzătoare privind confidențialitatea

Scraping-ul cloud din Thunderbit folosește tipare standard de request-uri similare unui browser, dar ar trebui să verifici întotdeauna conformitatea împreună cu consilierul tău juridic.

Ce metodă ar trebui să folosești? Ghid rapid de decizie

Varianta scurtă:

  • „Învăț Python și vreau un proiect de weekend.” → Metoda 1 (requests + BeautifulSoup). Vei învăța enorm despre request-uri HTTP, parsare HTML și apărarea anti-bot a Amazon.
  • „Trebuie să extrag pagini cu mult JavaScript sau sesiuni autentificate.” → Metoda 2 (Selenium). E mai grea, dar gestionează conținutul dinamic.
  • „Rulez extrageri în producție, la scară.” → Metoda 3 (Scraping API). Lasă pe altcineva să gestioneze proxy-urile și randarea. favorizează API-urile sub 500K request-uri pe lună.
  • „Nu sunt developer și vreau date în 2 minute.” → Metoda 4 (). Fără cod, fără selectori, fără mentenanță.
  • „Am nevoie de monitorizare continuă fără să administrez servere.” → Thunderbit Scheduled Scraper. Îl setezi și uiți de el.

Concluzie și idei principale

După un weekend de testare, iată ce a rămas cu adevărat:

requests + BeautifulSoup este excelent pentru învățare, dar limitarea de lazy loading (doar ~30 din 50 de produse) și selectorii CSS fragili îl fac nepractic pentru producție.

Selenium rezolvă problema lazy loading-ului și capturează toate cele 50 de produse per pagină, dar este lent, consumă multă memorie și tot poate fi detectat de apărarea anti-bot a Amazon.

Scraping API-urile oferă cea mai bună fiabilitate pentru scraping la scară de producție — pe Amazon — dar costurile cresc și tot trebuie să scrii cod de parsare.

Thunderbit a livrat de departe cel mai rapid timp până la date. AI-ul gestionează schimbările de layout, lazy loading-ul, paginarea și măsurile anti-bot fără nicio configurare. Pentru utilizatorii non-tehnici sau echipele care au nevoie de date recurente fără povara DevOps, este cea mai practică opțiune.

Cea mai mare lecție? Sistemele anti-bot ale Amazon și schimbările frecvente de layout fac ca soluțiile fără mentenanță să economisească cel mai mult timp pe termen lung. Fiecare oră petrecută depanând selectori rupți și rotind proxy-uri este o oră pe care nu o mai investești în analiză reală.

Vrei să încerci abordarea fără cod? îți oferă suficiente credite ca să extragi câteva categorii Best Sellers și să vezi singur rezultatele. Preferi varianta Python? Exemplele de cod de mai sus ar trebui să te ajute să începi. În orice caz, vei avea date Amazon Best Seller într-un spreadsheet, nu doar într-un tab de browser.

Pentru mai multe informații despre abordări de web scraping, consultă ghidurile noastre despre , și . Poți urmări și demonstrații pas cu pas pe .

Află mai mult

Cuprins

Încearcă Thunderbit

Extrage leaduri și alte date în doar 2 clicuri. Alimentat de AI.

Obține Thunderbit Este gratuit
Extrage date folosind AI
Transferă ușor datele în Google Sheets, Airtable sau Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week