Akhir pekan lalu, saya menghabiskan satu panci penuh kopi buat mencoba ambil data halaman Amazon Best Sellers dengan empat cara yang berbeda. Dua cara hasilnya bagus banget, satu hampir bikin IP saya keblokir, dan satu lagi cuma butuh dua klik. Ini semua yang saya pelajari.
Amazon itu marketplace raksasa — , , dan sistem Best Sellers Rank (BSR) yang diperbarui setiap jam. Kalau Anda lagi riset produk FBA, analisis harga kompetitor, atau sekadar mau nangkap tren sebelum pesaing Anda, data Best Seller itu memang sangat berharga.
Tapi, bagaimana cara mengeluarkan data itu dari Amazon lalu masuk ke spreadsheet? Di sinilah bagian serunya. Saya menguji requests + BeautifulSoup, Selenium, scraping API, dan (AI web scraper tanpa kode buatan kami) untuk melihat pendekatan mana yang benar-benar jalan — dan mana yang malah bikin Anda bengong di halaman CAPTCHA.
Apa Itu Amazon Best Sellers (dan Kenapa Perlu Anda Pedulikan)?
Amazon Best Sellers Rank (BSR) adalah papan peringkat real-time milik Amazon yang mengurutkan produk berdasarkan volume penjualan di tiap kategori. Anggap saja ini seperti kompetisi popularitas, yang diperbarui tiap jam berdasarkan data penjualan terbaru dan historis. Amazon sendiri menjelaskannya seperti ini:
"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." —
Halaman Best Sellers menampilkan 100 produk teratas per kategori, dibagi ke dalam dua halaman, masing-masing 50 item. Halaman 1 berisi peringkat #1–50, halaman 2 berisi #51–100. Amazon juga sudah menegaskan bahwa jumlah view dan ulasan pelanggan TIDAK memengaruhi BSR — semuanya murni ditentukan oleh penjualan.
Siapa yang butuh data ini? Penjual e-commerce yang cari produk untuk FBA, tim sales yang bikin intelijen kompetitif, tim operasional yang memantau tren harga, dan peneliti pasar yang melacak pertumbuhan kategori. Dari pengalaman saya, siapa pun yang jualan di Amazon atau bersaing dengan Amazon pada akhirnya bakal butuh data ini di spreadsheet.
Kenapa Mengambil Data Amazon Best Sellers dengan Python?
Riset produk manual itu memang makan waktu banget. Sebuah menemukan bahwa karyawan menghabiskan 9,3 jam per minggu hanya untuk mencari dan mengumpulkan informasi. Buat tim e-commerce, itu artinya berjam-jam klik-klik halaman Amazon, menyalin nama dan harga produk, lalu tempel ke spreadsheet — dan minggu depan harus ngulang lagi dari awal.
Berikut gambaran singkat use case yang bikin scraping Best Sellers itu layak dilakukan:
| Use Case | Hasil yang Didapat | Siapa yang Diuntungkan |
|---|---|---|
| Riset Produk FBA | Mengidentifikasi produk dengan permintaan tinggi dan persaingan rendah berdasarkan BSR dan jumlah ulasan | Penjual Amazon, dropshipper |
| Penetapan Harga Kompetitif | Melacak perubahan harga di produk-produk teratas dalam kategori Anda | Tim e-commerce, analis harga |
| Pemantauan Tren Pasar | Menangkap kategori yang sedang naik daun dan perubahan musiman | Product manager, peneliti pasar |
| Lead Generation | Membuat daftar merek terlaris beserta lini produknya | Tim sales, outreach B2B |
| Analisis Kompetitor | Membandingkan produk Anda dengan pemimpin kategori | Brand manager, tim strategi |
ROI-nya juga nyata: sebuah terhadap 2.700 profesional commerce menemukan bahwa alat AI menghemat rata-rata untuk profesional e-commerce. Dan penjual yang memakai pelacakan harga otomatis mempertahankan Buy Box , dibanding 42% untuk pelacak manual — peningkatan penjualan 37% yang didorong oleh respons harga yang lebih cepat.
4 Cara Mengambil Data Amazon Best Sellers dengan Python: Perbandingan Cepat
Sebelum masuk ke tutorial langkah demi langkah, ini adalah perbandingan side-by-side yang saya harap sudah saya punya sebelum mulai uji coba. Tabel ini bakal bantu Anda memilih metode yang paling cocok untuk situasi Anda:
| Kriteria | requests + BS4 | Selenium | Scraping API (mis. Scrape.do) | Thunderbit (Tanpa Kode) |
|---|---|---|---|---|
| Tingkat Kesulitan Setup | Menengah | Tinggi (driver, browser) | Rendah (API key) | Sangat rendah (ekstensi Chrome) |
| Menangani Lazy Loading | Tidak | Ya (simulasi scroll) | Ya (HTML sudah dirender) | Ya (AI menangani rendering) |
| Ketahanan terhadap Anti-Bot | Rendah (IP bisa diblokir) | Menengah (bisa terdeteksi) | Tinggi (proxy berganti) | Tinggi (mode cloud + browser) |
| Beban Pemeliharaan | Tinggi (selector mudah rusak) | Tinggi (update driver + selector) | Rendah | Sangat rendah (AI menyesuaikan perubahan layout) |
| Biaya | Gratis | Gratis | Berbayar (per request) | Gratis tier + paket berbayar |
| Paling Cocok Untuk | Scrape sekali jalan, belajar | Halaman berat JS, login-required | Skala besar / produksi | Non-developer, riset cepat, monitoring berulang |
Kalau Anda mau belajar dasar-dasar scraping dengan Python, mulai dari Metode 1 atau 2. Kalau Anda butuh reliabilitas skala produksi, pilih Metode 3. Kalau Anda mau hasil dalam dua klik tanpa nulis kode, langsung lompat ke Metode 4.
Sebelum Memulai
- Tingkat Kesulitan: Pemula hingga menengah (tergantung metode)
- Waktu yang Dibutuhkan: ~15 menit untuk Thunderbit, ~45 menit untuk metode Python
- Yang Dibutuhkan: Python 3.8+ (untuk Metode 1–3), browser Chrome, (untuk Metode 4), dan URL kategori Amazon Best Sellers yang dituju
Metode 1: Mengambil Data Amazon Best Sellers dengan requests + BeautifulSoup
Ini pendekatan yang ringan dan ramah pemula — tanpa browser automation, cukup HTTP request dan parsing HTML. Dari sini saya juga belajar paling banyak soal pertahanan anti-scraping milik Amazon.
Langkah 1: Siapkan Lingkungan Anda
Install paket yang dibutuhkan:
1pip install requests beautifulsoup4 pandas
Lalu siapkan import-nya:
1import requests
2from bs4 import BeautifulSoup
3import pandas as pd
4import random
5import time
Langkah 2: Kirim Request dengan Header yang Masuk Akal
Amazon memblokir request yang kelihatan seperti bot. Pertahanan paling dasar adalah header User-Agent yang meniru browser sungguhan. Berikut contoh dengan kumpulan string User-Agent yang realistis dan terbaru (bersumber dari , Maret 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
Kalau status code-nya 200, berarti sukses. Kalau Anda melihat 503 atau diarahkan ke halaman CAPTCHA, berarti Amazon sudah menandai request Anda.
Langkah 3: Parsing Data Produk dengan BeautifulSoup
Cek HTML halaman Amazon lewat DevTools di browser Anda (klik kanan → Inspect). Container produk memakai ID gridItemRoot. Di dalam tiap container, Anda bakal menemukan nama produk, harga, rating, dan 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})
Peringatan: Class dengan awalan
_cDEzb_adalah hash CSS module yang secara berkala dibuat ulang oleh Amazon. IDgridItemRootdan classa-link-normallebih stabil, tetapi tetap periksa selector di DevTools sebelum menjalankan scraper Anda.
Langkah 4: Ekspor ke CSV
1df = pd.DataFrame(products)
2df.to_csv("amazon_best_sellers.csv", index=False)
3print(f"Scraped {len(products)} products")
Apa yang Terjadi — dan Apa yang Gagal
Dalam pengujian saya, metode ini cuma mengembalikan sekitar 30 produk, bukan 50. Itu bukan bug di kode — itu efek lazy loading Amazon. Hanya sekitar 30 produk yang dirender saat halaman pertama kali dimuat; sisanya baru muncul setelah scroll, yang butuh eksekusi JavaScript dan tidak bisa ditangani requests.
Keterbatasan lainnya:
- IP bisa cepat diblokir kalau tanpa rotasi proxy (saya kena blok setelah sekitar 15 request berturut-turut)
- CSS selector bisa rusak saat Amazon memperbarui layout halaman — dan mereka memang cukup sering melakukan itu
- Tidak ada penanganan pagination bawaan
Untuk belajar scraping Python, pendekatan ini bagus. Untuk penggunaan produksi, pendekatan ini rapuh.
Metode 2: Mengambil Data Amazon Best Sellers dengan Selenium
Selenium menyelesaikan masalah lazy loading dengan menjalankan browser sungguhan — setup-nya lebih berat, tapi bisa menangkap semua 50 produk per halaman.
Langkah 1: Install Selenium
1pip install selenium pandas
Kabar baiknya: mulai Selenium 4.6+, Anda tidak lagi perlu webdriver-manager. Selenium Manager akan menangani unduhan driver secara otomatis.
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 --headless=new (diperkenalkan di Chrome 109+) memakai pipeline rendering yang sama seperti Chrome biasa, jadi lebih susah dideteksi Amazon.
Langkah 2: Scroll untuk Melewati Lazy Loading
Inilah langkah yang bikin Selenium tetap layak dipakai meski setup-nya lebih ribet. Amazon Best Sellers hanya memuat sekitar 30 produk di awal — sisanya baru muncul setelah 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)
Setelah scroll, semua 50 produk seharusnya sudah dirender di DOM. Saya menemukan bahwa 5 kali page-down dengan jeda 2 detik sudah cukup, tapi Anda mungkin perlu menyesuaikannya tergantung kecepatan koneksi.
Langkah 3: Ekstrak Data Produk
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})
Membungkus tiap ekstraksi dengan try/except itu penting — beberapa produk mungkin habis stok atau punya field yang hilang, dan Anda tentu tidak mau satu elemen bermasalah menghentikan seluruh proses scrape.
Langkah 4: Tangani Pagination
Amazon membagi 100 Best Sellers ke dalam dua halaman dengan struktur URL yang berbeda:
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()
Apa yang Terjadi
Dalam pengujian saya, Selenium berhasil menangkap semua 50 produk per halaman — jelas lebih baik dibanding requests + BS4. Kekurangannya: prosesnya makan waktu sekitar 45 detik per halaman (termasuk jeda scroll), dan saya masih kena flag saat menjalankannya terlalu sering tanpa rotasi proxy. Selenium juga masih bisa dideteksi oleh sistem bot Amazon meskipun memakai flag anti-detection — untuk skala serius, Anda perlu langkah tambahan (lihat Anti-Ban Playbook di bawah).
Masalah lainnya:
- Ketidaksesuaian versi WebDriver masih sesekali terjadi, meskipun Selenium Manager sudah sangat membantu
- CSS selector perlu diperbarui setiap kali Amazon mengubah DOM mereka
- Konsumsi memori tinggi — setiap instance browser bisa memakai 200–400MB RAM
Metode 3: Mengambil Data Amazon Best Sellers dengan Scraping API
Scraping API adalah pendekatan “biarkan orang lain yang urus bagian susahnya”. Layanan seperti Scrape.do, Oxylabs, dan ScrapingBee mengelola rotasi proxy, rendering JavaScript, dan langkah anti-bot — Anda cukup kirim URL lalu menerima HTML atau JSON.
Cara Kerjanya
Anda mengirim URL target ke endpoint API. API merender halaman memakai browser sungguhan di infrastruktur mereka, mengganti proxy, menangani CAPTCHA, lalu mengembalikan HTML bersih. Setelah itu, Anda tinggal mem-parse HTML tersebut dengan BeautifulSoup seperti biasa.
Langkah 1: Kirim Request Lewat API
Berikut contoh menggunakan Scrape.do (harga mulai dari $29/bulan untuk 150.000 kredit, 1 kredit = 1 request terlepas dari 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")
Dari sini, proses parsing sama persis seperti Metode 1 — selector-nya sama, logika ekstraksinya juga sama.
Tinjauan Harga
Berikut biaya API utama per 1.000 request Amazon pada harga terbaik yang tersedia:
| Provider | Biaya per 1.000 Request | Catatan |
|---|---|---|
| Scrape.do | ~$0.19 | Tarif tetap, tanpa pengali kredit |
| Oxylabs | ~$1.80 | Pengali 5x untuk rendering JS |
| ScrapingBee | ~$4.90 | Pengali 5–25x untuk fitur premium |
| Bright Data | ~$5.00+ | Data paling lengkap (686 field/produk) tetapi paling lambat (~66 detik/request) |
Kelebihan dan Kekurangan
Kelebihan: Reliabilitas tinggi ( di Amazon untuk provider teratas), tidak repot maintenance driver, anti-bot ditangani otomatis, dan skalanya bagus.
Kekurangan: Bayar per request (biaya bisa membengkak kalau skala besar), Anda tetap perlu menulis kode parsing, dan masih rentan terhadap perubahan CSS selector. Untuk 100.000 halaman/bulan, perbandingan total biayanya sangat besar: membangun sendiri diperkirakan menelan biaya sekitar — penghematan 71%.
Titik impas biasanya ada di 500K–1M request/bulan. Di bawah angka itu, penghematan waktu dari API jauh lebih besar daripada biayanya.
Metode 4: Mengambil Data Amazon Best Sellers dengan Thunderbit (Tanpa Python)
Transparansi penuh: saya bekerja di Thunderbit, jadi anggap bagian ini dengan konteks itu. Meski begitu, saya benar-benar menguji keempat metode ini satu per satu, dan perbedaan waktu menuju data memang terasa banget.
adalah AI web scraper yang berjalan sebagai ekstensi Chrome. Intinya sederhana: alih-alih nulis CSS selector atau kode Python, AI membaca halaman dan menentukan data apa yang perlu diambil. Khusus untuk Amazon Best Sellers, Thunderbit punya template bawaan yang bisa langsung dipakai dalam satu klik.
Langkah 1: Install Thunderbit Chrome Extension
Buka lalu klik "Add to Chrome." Daftar akun gratis — paket gratisnya memberi kredit yang cukup buat mencoba fitur ini.
Langkah 2: Buka Halaman Amazon Best Sellers
Buka halaman kategori Amazon Best Sellers apa pun di Chrome. Contohnya:
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/
Langkah 3: Klik "AI Suggest Fields"
Buka sidebar Thunderbit lalu klik "AI Suggest Fields." AI akan menganalisis struktur halaman dan menyarankan kolom: Product Name, Price, Rating, Image URL, Vendor, Product URL, dan Rank. Dalam pengujian saya, semuanya teridentifikasi dengan benar dalam sekitar 3 detik.

Anda bisa mengganti nama kolom, menghapus kolom, atau menambahkan kolom baru. Anda bahkan bisa menambahkan prompt AI khusus per field — misalnya, "categorize as Electronics/Apparel/Home" untuk memberi tag kategori ke setiap produk.
Langkah 4: Klik "Scrape"
Tekan tombol "Scrape". Thunderbit akan mengisi tabel terstruktur dengan semua data produk dari halaman tersebut. Dalam mode cloud, Thunderbit bisa memproses hingga 50 halaman sekaligus secara paralel, sambil menangani lazy loading dan pagination secara otomatis.
Langkah 5: Ekspor Gratis
Klik "Export" dan pilih tujuan Anda: Excel, Google Sheets, Airtable, atau Notion. Semua ekspor gratis di setiap paket — tanpa biaya tersembunyi.

Seluruh prosesnya memakan waktu sekitar 90 detik dari membuka halaman sampai dapat spreadsheet lengkap. Sebagai perbandingan, Metode 1 butuh sekitar 20 menit (termasuk debugging masalah lazy loading), Metode 2 sekitar 35 menit (termasuk setup Selenium), dan Metode 3 sekitar 15 menit (termasuk setup akun API).
Kenapa Thunderbit Cocok untuk Amazon
Karena AI membaca ulang halaman setiap kali, ia otomatis menyesuaikan diri dengan perubahan layout — tidak ada CSS selector yang perlu dipelihara. Ini langsung menjawab keluhan paling umum di forum scraping: "Web scraper biasa tidak cukup, Anda harus menambahkan begitu banyak 'catch' untuk perubahan elemen." Saat Amazon mengubah DOM mereka (dan itu memang sering terjadi), Anda tidak perlu mengubah apa pun.
Mode cloud scraping menangani rotasi proxy, rendering, dan anti-bot secara transparan. Buat pengguna yang ingin solusi “langsung jalan”, ini menghilangkan semua drama anti-ban.
Playbook Anti-Ban: Cara Menghindari Diblokir Amazon
Deteksi bot Amazon itu agresif banget. Saat pengujian, IP saya sempat diblokir sementara, dan pengguna forum juga melaporkan hal serupa: "errors everywhere, amazon even started redirecting me to the homepage." Kalau Anda memilih jalur Python (Metode 1–3), bagian ini penting sekali.
Berikut strategi berlapis, dari yang paling dasar sampai yang lebih lanjut:
1. Rotasi User-Agent
Mengirim User-Agent yang sama terus-menerus adalah tanda bahaya. Gunakan kumpulan 5+ string dari contoh kode di Metode 1, lalu pilih secara acak setiap request:
1headers = {"User-Agent": random.choice(USER_AGENTS)}
2. Tambahkan Jeda Acak Antar Request
Delay yang tetap itu gampang dikenali karena polanya kebaca. Delay acak lebih aman:
1time.sleep(random.uniform(2, 5))
Saya menemukan bahwa jeda 2–5 detik antar request cukup aman untuk batch kecil (di bawah 50 request). Untuk run yang lebih besar, naikkan ke 3–7 detik.
3. Gunakan Rotasi Proxy
Ini yang paling penting. menunjukkan proxy residential rata-rata ~94% berhasil di Amazon, dibanding ~59% untuk proxy datacenter — selisih 35 poin persentase. Stack deteksi Amazon mencakup TLS fingerprinting, analisis perilaku, dan rate limiting per IP, jadi IP datacenter biasa bisa cepat ditandai dalam hitungan detik.
Proxy residential memang lebih mahal ($2–$12 per GB tergantung provider), tetapi jauh lebih andal. Contoh kode:
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. Perkuat Browser Fingerprint Anda (Selenium)
1options.add_argument('--disable-blink-features=AutomationControlled')
2options.add_experimental_option("excludeSwitches", ["enable-automation"])
3options.add_experimental_option('useAutomationExtension', False)
4# Setelah driver diinisialisasi, hapus flag navigator.webdriver
5driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
6 'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
7})
5. Kelola Session dan Cookie
Menjaga cookie tetap persisten di antara request bikin scraper Anda terlihat seperti sesi pengguna sungguhan:
1session = requests.Session()
2# Kunjungi homepage terlebih dahulu untuk mendapatkan cookie yang realistis
3session.get("https://www.amazon.com", headers=headers)
4time.sleep(2)
5# Lalu scrape halaman target
6response = session.get(target_url, headers=headers)
6. Kapan Sebaiknya Lewatkan Repotnya
Buat pengguna yang tidak mau ngurus semua ini, cloud scraping Thunderbit menangani rotasi proxy, rendering, dan anti-bot secara transparan. Scraping API juga menangani sebagian besar hal ini secara bawaan. Dari pengalaman saya, waktu yang habis buat debugging anti-ban sering kali lebih besar daripada waktu untuk menulis kode scraping itu sendiri — jadi pendekatan “langsung jalan” memang punya ROI nyata.
Enrichment Subpage: Scraping Halaman Detail Produk untuk Data yang Lebih Kaya
Halaman listing Best Sellers hanya menampilkan info dasar — judul, harga, rating, rank. Tapi nilai sesungguhnya untuk riset FBA ada di halaman detail produk individual. Berikut apa yang akan Anda lewatkan kalau cuma scraping halaman listing:
| Field | Halaman Listing | Halaman Detail Produk |
|---|---|---|
| Nama Produk | âś… | âś… |
| Harga | âś… | âś… |
| Rating | âś… | âś… |
| Peringkat BSR | âś… | âś… (termasuk peringkat sub-kategori) |
| Brand | ❌ | ✅ |
| ASIN | ❌ | ✅ |
| Tanggal Pertama Tersedia | ❌ | ✅ |
| Dimensi/Berat | ❌ | ✅ |
| Jumlah Penjual | ❌ | ✅ |
| Fitur Bullet Point | ❌ | ✅ |
| Pemilik Buy Box | ❌ | ✅ |
Field "Tanggal Pertama Tersedia" sangat berharga — ini menunjukkan sudah berapa lama produk ada di pasar, yang jadi sinyal penting untuk analisis persaingan. Dan mengetahui jumlah penjual serta pemilik Buy Box membantu Anda menilai apakah suatu niche produk layak dimasuki (kalau Amazon sendiri memegang >30% pangsa Buy Box, persaingannya sangat berat).
Pendekatan Python: Loop Melalui URL Produk
Setelah mengumpulkan URL produk dari halaman listing, loop ke tiap URL dengan jeda:
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 ...
Ingat: membuka 100 halaman produk individual akan secara signifikan meningkatkan risiko diblokir. Siapkan budget untuk rotasi proxy dan jeda yang lebih panjang.
Pendekatan Thunderbit: Scraping Subpage Satu Klik
Setelah scraping halaman listing ke dalam tabel, klik "Scrape Subpages" di Thunderbit. AI akan mengunjungi setiap URL produk dan memperkaya tabel dengan kolom tambahan — brand, ASIN, spesifikasi, fitur — secara otomatis. Tidak perlu kode tambahan, selector, atau setup lain. Ini sangat berguna buat tim e-commerce yang butuh gambaran lengkap untuk keputusan sourcing tapi tidak mau menulis dan memelihara parser halaman detail.
Mengotomatisasi Scrape Berulang: Memantau Best Sellers dari Waktu ke Waktu
Scrape sekali jalan memang berguna, tapi pemantauan berkelanjutan adalah tempat keunggulan kompetitif yang sebenarnya. Melacak produk yang naik dan turun, menangkap tren lebih awal, dan memantau pergeseran harga selama berminggu-minggu atau berbulan-bulan — itulah yang membedakan riset santai dari pengambilan keputusan berbasis data.
Pendekatan Python: Penjadwalan dengan Cron
Di Linux/Mac, Anda bisa menjadwalkan script Python dengan cron. Berikut entri crontab untuk scrape harian pukul 8 pagi:
10 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
Untuk scrape mingguan setiap Senin pukul 9 pagi:
10 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
Di Windows, gunakan Task Scheduler untuk melakukan hal yang sama. Untuk penjadwalan yang selalu aktif tanpa harus menyalakan laptop terus-menerus, deploy ke VPS atau AWS Lambda — walaupun itu menambah kompleksitas infrastruktur.
Tambahkan logging dan notifikasi error untuk menangkap kegagalan run. Tidak ada yang lebih buruk daripada baru sadar scraper Anda diam-diam rusak dua minggu lalu.
Pendekatan Thunderbit: Scheduled Scraper dalam Bahasa Sederhana
Scheduled Scraper milik Thunderbit memungkinkan Anda mendeskripsikan interval dengan bahasa alami — ketik "every Monday at 9am" atau "every day at 8am" dan AI akan paham jadwalnya. Scrape berjalan di server cloud Thunderbit (tidak perlu browser atau komputer yang terus menyala), dan data otomatis diekspor ke Google Sheets atau Airtable. Ini bikin dashboard monitoring live tanpa pengelolaan server sama sekali — ideal untuk tim operasional yang ingin visibilitas berkelanjutan tanpa beban DevOps.
Pertimbangan Legal dan Etika Saat Mengambil Data Amazon
Saya bukan pengacara, dan ini bukan nasihat hukum. Tapi mengabaikan lanskap hukum dalam tutorial scraping jelas tidak bertanggung jawab — pengguna forum memang sering mengangkat isu ToS, dan itu ada alasannya.
robots.txt Amazon: Per 2026, robots.txt Amazon berisi 80+ path Disallow spesifik, tetapi /gp/bestsellers/ TIDAK diblokir secara eksplisit untuk user agent standar. Namun, 35+ user agent khusus AI (ClaudeBot, GPTBot, Scrapy, dll.) mendapat larangan menyeluruh Disallow: /. Tidak adanya disallow spesifik bukan berarti Amazon menyetujui scraping.
Ketentuan Layanan Amazon: Amazon (diperbarui Mei 2025) secara eksplisit melarang "using any automated process or technology to access, acquire, copy, or monitor any part of the Amazon Website" tanpa izin tertulis. Ini bukan cuma teori — Amazon pada November 2025 terkait akses otomatis tanpa izin dan memenangkan preliminary injunction.
Preseden hiQ v. LinkedIn: Dalam (Ninth Circuit, 2022), pengadilan memutuskan bahwa scraping data yang tersedia untuk publik kemungkinan tidak melanggar Computer Fraud and Abuse Act. Namun hiQ pada akhirnya menyelesaikan perkara dan setuju untuk berhenti scraping — menang di CFAA tidak berarti kebal dari klaim pelanggaran kontrak.
Panduan praktis:
- Ambil hanya data yang tersedia secara publik (harga, BSR, judul produk — bukan PII)
- Hormati rate limit dan jangan membebani server
- Gunakan data untuk intelijen kompetitif yang sah
- Konsultasikan dengan penasihat hukum Anda sebelum melakukan scraping skala besar
- Sadarilah bahwa kini punya regulasi privasi yang komprehensif
Cloud scraping Thunderbit menggunakan pola request standar seperti browser, tetapi Anda tetap harus memastikan kepatuhannya bersama penasihat hukum Anda sendiri.
Metode Mana yang Harus Anda Pilih? Panduan Keputusan Cepat
Versi singkatnya:
- "Saya lagi belajar Python dan pengen proyek akhir pekan." → Metode 1 (requests + BeautifulSoup). Anda bakal belajar banyak tentang HTTP request, parsing HTML, dan pertahanan anti-bot Amazon.
- "Saya perlu scrape halaman berat JavaScript atau sesi login." → Metode 2 (Selenium). Lebih berat, tapi bisa menangani konten dinamis.
- "Saya menjalankan scrape produksi dalam skala besar." → Metode 3 (Scraping API). Biarkan orang lain urus proxy dan rendering. lebih menguntungkan API di bawah 500K request/bulan.
- "Saya bukan developer dan mau data dalam 2 menit." → Metode 4 (). Tanpa kode, tanpa selector, tanpa maintenance.
- "Saya butuh monitoring berkelanjutan tanpa ngurus server." → Thunderbit Scheduled Scraper. Setel sekali, lalu biarkan jalan.
Kesimpulan dan Poin Penting
Setelah menguji selama satu akhir pekan, inilah yang benar-benar saya catat:
requests + BeautifulSoup bagus untuk belajar, tetapi keterbatasan lazy loading (cuma ~30 dari 50 produk) dan CSS selector yang rapuh bikin metode ini kurang praktis untuk produksi.
Selenium menyelesaikan masalah lazy loading dan menangkap semua 50 produk per halaman, tetapi lambat, boros memori, dan masih bisa dideteksi oleh pertahanan bot Amazon.
Scraping API menawarkan reliabilitas terbaik untuk scraping skala produksi — di Amazon — tetapi biayanya bisa membesar dan Anda tetap perlu menulis kode parsing.
Thunderbit memberi waktu tercepat untuk mendapatkan data dengan selisih yang sangat jauh. AI menangani perubahan layout, lazy loading, pagination, dan anti-bot tanpa konfigurasi. Untuk pengguna non-teknis atau tim yang butuh data berulang tanpa beban DevOps, ini opsi paling praktis.
Pelajaran terbesarnya? Pertahanan anti-bot Amazon dan perubahan layout yang sering berarti solusi dengan maintenance rendah menghemat waktu paling besar dalam jangka panjang. Setiap jam yang Anda habiskan untuk memperbaiki selector yang rusak dan merotasi proxy adalah jam yang tidak dipakai untuk analisis sungguhan.
Mau coba pendekatan tanpa kode? memberi Anda kredit yang cukup untuk mengambil beberapa kategori Best Sellers dan lihat hasilnya sendiri. Lebih suka jalur Python? Contoh kode di atas seharusnya cukup untuk mulai. Apa pun pilihannya, Anda bakal punya data Amazon Best Seller di spreadsheet, bukan cuma menatap tab browser.
Untuk pembahasan lebih lanjut soal web scraping, lihat panduan kami tentang , , dan . Anda juga bisa nonton panduan langkah demi langkah di .
Pelajari Lebih Lanjut