Amazon Scraper: Cara mengumpulkan data produk, ASIN, dan ulasan

Ekspor produk Amazon Anda terlihat siap untuk dianalisis sampai Anda memeriksa beberapa baris. Dua harga ternyata milik ukuran yang berbeda, estimasi pengiriman mencerminkan kode ZIP yang berbeda, dan ulasan yang terkumpul hanya mencakup sebagian dari feedback yang Anda harapkan. Kesenjangan tersebut dapat mendistorsi perbandingan harga atau mengarahkan riset produk ke arah yang salah.
Amazon scraper membantu Anda mengumpulkan data, tetapi hasil yang berguna bergantung pada bagaimana Anda mengonfigurasi pekerjaan dan memverifikasi outputnya. Panduan ini memandu Anda memilih antara Python, web scraping API, dan alat tanpa kode, lalu mengumpulkan detail produk, ASIN, dan ulasan dengan pengaturan yang konsisten. Anda juga akan mempelajari cara memeriksa akurasi lokasi, menangani field yang hilang, dan membangun alur kerja yang dapat diulang sebelum meningkatkan skala.
TL;DR
Pilih metode Anda: Bangun Amazon scraper dengan Python ketika Anda memerlukan logika kustom dan dapat memelihara kode. Pilih API terkelola untuk mengurangi pekerjaan ekstraksi, atau alat tanpa kode untuk ekspor cepat dengan pengaturan minimal.
Gunakan proxy di mana alur kerja memerlukannya: Proxy menyediakan routing jaringan dan kontrol IP untuk skrip kustom. Sesuaikan rotasi atau sticky session dengan tugas, lalu verifikasi pengaturan pengiriman Amazon dan data yang diekstraksi.
Jaga konsistensi perbandingan: Simpan ASIN, varian yang dipilih, penjual, harga, mata uang, marketplace, kode ZIP pengiriman, URL sumber, dan timestamp pengumpulan.
Periksa cakupan ulasan secara terpisah: Filter, paginasi, dan batasan akses dapat membatasi sampel Anda. Catat apa yang Anda kumpulkan daripada mengasumsikan ekspor berisi setiap ulasan.
Apa itu Amazon scraper, dan data apa yang dapat dikumpulkannya?
Amazon scraper adalah alat yang mengekstrak informasi dari halaman Amazon dan mengorganisirnya menjadi catatan terstruktur, seperti file CSV, spreadsheet, atau output JSON. Alih-alih menyalin detail produk secara manual, Anda menyediakan URL, istilah pencarian, atau ASIN, tergantung pada alat, dan menentukan informasi yang Anda butuhkan.
Field umum mencakup judul produk, ASIN, merek, harga, mata uang, varian yang dipilih, nama penjual, ketersediaan, rating, dan jumlah ulasan. Beberapa alat juga mengumpulkan daftar pencarian dan ulasan pelanggan individual, meskipun cakupan bergantung pada alat dan apa yang dapat diaksesnya.
Bisnis menggunakan data ini untuk memantau harga, membandingkan produk pesaing, melacak perubahan assortment, dan menganalisis feedback pelanggan. Untuk scraping data produk Amazon guna mendukung perbandingan yang andal, setiap catatan memerlukan konteks: varian dan penjual mana yang diwakilinya, lokasi pengiriman yang diterapkan, dan kapan informasi dikumpulkan.
Detail produk, harga, penjual, dan ketersediaan
Pilih field yang memungkinkan Anda mengidentifikasi produk yang tepat dan memahami penawaran yang melekat padanya. Harga saja memberi tahu Anda sedikit jika Anda tidak dapat mengonfirmasi ukuran, penjual, atau mata uang.
Field | Apa yang harus dicatat |
Judul dan merek | Nama produk dan merek yang ditampilkan untuk identifikasi dan pengelompokan. |
ASIN | Pengenal Amazon yang terkait dengan produk yang dikumpulkan. |
Varian yang dipilih | Ukuran, warna, kapasitas, jumlah paket, atau opsi lain yang dipilih. |
Harga dan mata uang | Harga penawaran yang ditampilkan dan mata uangnya, dengan kupon atau diskon bersyarat dicatat secara terpisah. |
Penjual | Penjual yang terlampir pada penawaran; pisahkan informasi pemenuhan jika tersedia. |
Ketersediaan | Status yang ditampilkan, seperti tersedia, sementara tidak tersedia, atau tersedia untuk pre-order. |
Estimasi pengiriman | Tanggal atau rentang pengiriman yang ditampilkan untuk tujuan yang dipilih. |
URL Sumber | Alamat halaman agar Anda dapat melacak dan memverifikasi rekaman. |
Tips: Simpan timestamp pengumpulan dan kode ZIP pengiriman bersama dengan field ini agar perbandingan di kemudian hari tetap mempertahankan konteks aslinya.
Hasil pencarian, rating, dan ulasan pelanggan
Amazon scraper dapat mengumpulkan beberapa jenis data, tetapi masing-masing menjawab pertanyaan yang berbeda. Hasil pencarian menunjukkan listing mana yang muncul untuk suatu query, sementara halaman produk mendeskripsikan produk yang dipilih dan penawaran yang ditampilkan. Rating agregat merangkum skor pelanggan; rekaman ulasan individual menyediakan feedback tertulis di balik sebagian dari skor tersebut.
Jenis data | Field yang berguna | Aplikasi bisnis | Batasan yang perlu diperiksa |
Hasil pencarian | Query, ASIN, judul, posisi, harga yang ditampilkan, label sponsor | Melacak visibilitas produk dan menemukan listing kompetitor | Posisi bergantung pada query dan konteks pengumpulan; pisahkan penempatan sponsor dari hasil organik. |
Halaman produk | ASIN, varian, harga, seller, ketersediaan | Membandingkan penawaran dan memantau perubahan produk | Konfirmasi varian yang dipilih, seller, dan lokasi pengiriman sebelum membandingkan rekaman. |
Rating agregat | Rating bintang rata-rata, jumlah total rating, distribusi bintang jika tersedia | Memantau sentimen pelanggan secara keseluruhan | Jumlah rating tidak sama dengan jumlah ulasan tertulis yang tersedia untuk dikumpulkan. |
Ulasan individual | ID ulasan, bintang, judul, teks, tanggal, indikator verified-purchase | Mengidentifikasi keluhan berulang dan kekuatan produk | Filter, pengurutan, dan batasan akses dapat menghasilkan sampel yang tidak lengkap atau bias. |
Saat melakukan scraping data produk Amazon, jaga agar dataset ini tetap terhubung melalui identifier seperti ASIN sambil mempertahankan makna terpisah mereka.
Konfigurasikan akses proxy untuk Amazon scraper Anda dengan CyberYozh App
CyberYozh App menyediakan infrastruktur proxy untuk mengontrol koneksi jaringan yang digunakan Amazon scraper Anda. Sesuaikan jenis proxy dan perilaku sesi dengan proses pengumpulan Anda, lalu evaluasi performa menggunakan rekaman yang diekstrak dengan benar alih-alih hanya keberhasilan koneksi.
Pilih rotating residential atau sticky session untuk tugas tersebut
Koneksi rotating residential cocok untuk pekerjaan pengumpulan independen yang tidak perlu mempertahankan alamat jaringan yang sama antar tugas. Untuk permintaan yang saling terkait, seperti mengatur lokasi pengiriman dan membuka beberapa halaman produk, gunakan sticky session untuk mempertahankan IP sementara aplikasi Anda menjaga cookie dan state browser.
Rotating residential proxy CyberYozh mendukung rotating dan sticky session, akses API penuh, dan rollover traffic bulanan. Penagihan berbasis penggunaan dengan rollover cocok untuk riset berulang yang volumenya berubah antara periode yang lebih sepi dan pengumpulan yang lebih besar, karena traffic yang tidak terpakai dibawa ke bulan penagihan berikutnya.
Evaluasi opsi mobile, static ISP, dan datacenter
Bandingkan opsi ini menggunakan sampel produk yang sama, persyaratan lokasi, dan kriteria penerimaan.
Jenis proxy | Cocok untuk | Yang perlu dievaluasi |
Pengumpulan berulang yang memerlukan akses jaringan operator dan kontrol atas perubahan IP | Lokasi yang tersedia, perilaku rotasi, throughput, dan hasil yang dapat digunakan dalam beban kerja Anda | |
Pekerjaan yang memerlukan satu IP khusus yang tetap di berbagai sesi berulang | Kontinuitas sesi, kesesuaian lokasi, dan performa dari waktu ke waktu | |
Beban kerja yang memprioritaskan kecepatan koneksi dan biaya infrastruktur | Apakah halaman target Anda mengembalikan data lengkap yang dapat digunakan dengan biaya yang dapat diterima |
Tips: CyberYozh App menyediakan traffic unlimited pada paket mobile, static ISP, dan datacenter. Ini dapat membuat pengeluaran bandwidth lebih dapat diprediksi untuk pengumpulan yang sering, sementara paket rotating residential tetap berbasis traffic karena traffic yang tidak terpakai otomatis dibawa ke bulan penagihan berikutnya. Periksa lokasi, kecepatan, dan kondisi koneksi paket yang dipilih sebelum memesan.
Hubungkan, verifikasi, dan pantau alur kerja
Hubungkan proxy melalui klien HTTP Python Anda atau pengaturan proxy yang didukung oleh automasi seperti Scrapy, Playwright, Puppeteer, Selenium, atau framework kompatibel lainnya. CyberYozh menyediakan akses API penuh dan dukungan integrasi, sementara konfigurasi yang tepat bergantung pada tool dan protokol proxy yang dipilih.
Ikuti urutan pengaturan ini:
Ambil detail koneksi. Salin host, port, protokol, dan detail autentikasi dari konfigurasi proxy Anda. Simpan kredensial dalam variabel lingkungan atau secret manager.
Konfigurasi perilaku sesi. Pilih rotasi untuk pekerjaan independen atau sticky session untuk permintaan yang saling terkait. Simpan cookie secara terpisah dalam aplikasi Anda.
Verifikasi koneksi keluar. Pastikan permintaan menggunakan proxy dan wilayah yang diamati sesuai dengan pilihan Anda.
Verifikasi konteks pengiriman Amazon. Terapkan dan periksa tujuan pada halaman produk secara independen dari lokasi proxy.
Jalankan pekerjaan pengumpulan kecil. Pantau record yang dapat digunakan, waktu respons, field yang hilang, konsumsi traffic, dan kegagalan berulang sebelum meningkatkan volume.
Fitur pemeriksaan reputasi IP CyberYozh dapat memberikan konteks tambahan saat menyelidiki masalah koneksi.
Pilih Amazon scraper Anda: Python, API, atau tool no-code
Pilih Amazon scraper Anda berdasarkan seberapa sering Anda memerlukan data, seberapa banyak kontrol yang diperlukan pekerjaan, dan siapa yang akan memeliharanya. Perbandingan produk satu kali memiliki kebutuhan yang berbeda dari pekerjaan pengumpulan harian yang mengisi dashboard internal.
Python cocok untuk alur kerja yang memerlukan aturan ekstraksi kustom, validasi, atau penyimpanan. Anda mengontrol kode, tetapi tim Anda juga menangani kesalahan parsing, perubahan halaman, dan pemeliharaan berkelanjutan.
API terkelola cocok untuk pengumpulan berulang ketika Anda ingin penyedia menangani lebih banyak pekerjaan ekstraksi. Sebelum berkomitmen, periksa apakah API tersebut mengembalikan field yang Anda butuhkan, mendukung lokasi target Anda, dan mengenakan biaya untuk permintaan atau hasil yang dapat digunakan.
web scraper tanpa kode bekerja dengan baik untuk riset cepat dan ekspor sederhana. Periksa batas batch, opsi penjadwalan, dan kontrol kustomisasi jika Anda memperkirakan beban kerja akan bertambah.
Python untuk pengumpulan dan validasi khusus
Python memberi Anda kontrol atas apa yang dikumpulkan scraper Amazon Anda dan apa yang terjadi pada setiap record setelahnya. Anda dapat memilih field yang dibutuhkan riset Anda, menjadwalkan pengumpulan sesuai tenggat waktu pelaporan, dan menyimpan hasil langsung ke file CSV, database, atau sistem internal. Aturan validasi khusus dapat menandai mata uang yang hilang, ASIN yang tidak terduga, atau varian yang berubah sebelum record mencapai analisis Anda.
Anda juga mengontrol bagaimana scraper menangani kegagalan. Misalnya, Anda dapat mencoba ulang kesalahan koneksi sementara dalam batas yang ditentukan, mencatat produk yang tidak tersedia secara terpisah, dan menjeda pekerjaan ketika respons berulang berisi konten yang tidak terduga.
API scraper Amazon untuk ekstraksi terkelola
API scraper Amazon memungkinkan aplikasi Anda meminta data tanpa harus memelihara setiap bagian dari proses pengumpulan sendiri. Tergantung pada layanan, penyedia menangani pengambilan halaman, infrastruktur proxy, percobaan ulang, rendering, dan parsing, kemudian mengembalikan hasil terstruktur. Periksa apa yang disertakan: beberapa endpoint mengembalikan konten halaman mentah yang masih memerlukan ekstraksi.
Tanggung jawab Anda adalah memastikan bahwa output sesuai dengan pekerjaan. Uji field produk yang diperlukan, verifikasi bahwa pengaturan lokasi pengiriman diterapkan, dan periksa cakupan ulasan secara terpisah dari dukungan halaman produk. Tanyakan apakah hasil dikumpulkan sesuai permintaan atau disajikan dari cache, terutama saat melacak harga atau ketersediaan.
Tool tanpa kode untuk ekspor kecil dan riset cepat
Ekstensi browser dan scraper siap pakai praktis untuk mengumpulkan daftar pendek produk pesaing, memeriksa harga yang ditampilkan, atau mengekspor listing untuk laporan riset. Anda biasanya menyediakan URL produk atau membuka halaman yang didukung, memilih field yang tersedia, dan mengekspor hasilnya tanpa menulis kode pengumpulan.
Periksa bagaimana tool berjalan sebelum mengandalkannya untuk pekerjaan berulang. Ekstensi browser mungkin mengharuskan browser Anda tetap terbuka, sementara scraper yang di-hosting mungkin mendukung pekerjaan terjadwal. Verifikasi batas batch, format ekspor, penjadwalan, dan apakah pengaturan lokasi pengiriman bertahan di antara eksekusi.
Apakah ada API Amazon resmi untuk web scraping?
Amazon menyediakan API resmi untuk penggunaan bisnis yang ditentukan, tetapi ini berbeda dari layanan pihak ketiga yang mengekstrak konten situs web. Jika Anda mencari API Amazon untuk web scraping, pertama-tama periksa apakah API resmi menyediakan informasi yang dibutuhkan proyek Anda.
Selling Partner API (SP-API) mendukung alur kerja penjual dan vendor yang diotorisasi. Akses bergantung pada aplikasi, peran yang diperlukan, dan proses otorisasi yang relevan; memiliki akun belanja Amazon saja tidak memberikan akses. Aplikasi publik umumnya memerlukan otorisasi mitra penjualan, sementara aplikasi pribadi menggunakan otorisasi mandiri.
Amazon juga menawarkan Customer Feedback API, yang menyediakan wawasan ulasan di tingkat ASIN dan kategori produk, plus wawasan pengembalian di tingkat kategori. API ini mencakup topik dan tren daripada menyediakan ekspor lengkap dari setiap ulasan individual. Akses memerlukan peran yang memenuhi syarat, seperti Brand Analytics atau Selling Partner Insights.
API scraper Amazon pihak ketiga adalah layanan ekstraksi dari penyedia terpisah. Kredensial, field yang didukung, dan penagihan milik penyedia tersebut, dan berlangganan tidak memberikan otorisasi Amazon.
Metode | Paling cocok untuk | Upaya setup | Pemeliharaan | Model biaya |
Scraper Python kustom | Field kustom, validasi, dan alur kerja penyimpanan | Lebih tinggi: membangun dan menguji kode pengumpulan | Tim Anda memelihara parsing, dependensi, dan penanganan error | Biaya pengembangan, hosting, dan proxy |
API scraping terkelola | Pengumpulan berulang dengan lebih sedikit infrastruktur ekstraksi yang perlu dipelihara | Sedang: integrasikan API dan validasi output | Provider memelihara ekstraksi; Anda memelihara integrasi dan pemeriksaan data | Request, kredit, record, atau langganan |
Tool no-code | Riset cepat dan ekspor sederhana | Lebih rendah: konfigurasi input dan field yang tersedia | Periksa template, job yang gagal, dan kualitas ekspor | Kuota gratis, langganan, atau kredit penggunaan |
API Amazon resmi | Alur kerja bisnis yang didukung dengan akses yang diperlukan | Bervariasi: registrasi, peran, otorisasi, dan integrasi | Memelihara izin, kompatibilitas API, dan penanganan data | Periksa biaya program yang berlaku dan biaya integrasi |
Cara scrape data produk Amazon dengan Python
Panduan Python yang berguna harus membawa Anda dari URL produk ke record terstruktur yang dapat Anda periksa. Kami akan membangun alur kerja tersebut secara bertahap: mendefinisikan field yang diperlukan, menyiapkan proyek, mengambil halaman, mengekstrak detail produk, dan mengekspor hasilnya ke CSV atau JSON.
Mulai dengan kumpulan kecil URL produk agar Anda dapat membandingkan output dengan halaman sumber. Setiap record harus menyimpan ASIN, varian yang dipilih, harga, mata uang, dan timestamp pengumpulan, dengan nilai yang hilang ditandai dengan jelas.
Definisikan field, marketplace, dan cakupan pengumpulan Anda
Sebelum menulis scraper, tentukan apa yang harus dimuat dalam satu record lengkap dan kondisi mana yang harus tetap konsisten di antara eksekusi. Untuk panduan ini, mulai dengan daftar kecil URL produk dari satu marketplace Amazon.
Pengaturan | Yang harus didefinisikan |
Marketplace | Pilih domain Amazon yang ingin Anda teliti, seperti Amazon.com untuk AS. |
URL input | Gunakan URL halaman produk spesifik dan identifikasi varian yang ingin Anda lacak. |
Field yang diperlukan | Mulai dengan ASIN, judul, varian yang dipilih, harga, mata uang, ketersediaan, URL sumber, dan timestamp pengumpulan. Tambahkan detail penjual dan pengiriman jika analisis Anda memerlukannya. |
Konteks pengiriman | Pilih negara tujuan dan kode ZIP, lalu verifikasi bahwa metode pengumpulan menerapkannya. Catat pengaturan yang belum diverifikasi sebagai tidak diketahui. |
Frekuensi pengumpulan | Sesuaikan jadwal dengan keputusan yang didukung oleh data, dimulai dengan satu kali eksekusi sebelum memperkenalkan pekerjaan berulang. |
Tentukan field mana yang hilang membuat rekaman tidak dapat digunakan. Harga yang hilang, misalnya, mencegah perbandingan harga tetapi mungkin masih menyisakan informasi ketersediaan yang berguna. Pertahankan perbedaan tersebut agar Amazon scraper Anda dapat menandai rekaman yang tidak lengkap tanpa membuang observasi yang valid.
Menyiapkan proyek Python Amazon scraper Anda
Mulai dengan virtual environment untuk menjaga dependensi proyek tetap terpisah dari aplikasi Python lainnya. Pengaturan ini telah diperiksa dengan Python 3.12.14, Requests 2.34.2, dan Beautiful Soup 4.15.0. Instalasi, import, dan parsing HTML sampel berhasil; ekstraksi Amazon langsung belum diuji pada tahap ini.
Requests menangani permintaan HTTP, sementara Beautiful Soup mengekstrak field dari HTML yang dikembalikan. Keduanya tidak mengeksekusi JavaScript.
Buat folder proyek dan virtual environment:
mkdir amazon-scraper
cd amazon-scraper
python -m venv .venvAktifkan environment menggunakan perintah untuk sistem operasi Anda.
macOS atau Linux
source .venv/bin/activateWindows
.\.venv\Scripts\Activate.ps1 Instal versi dependensi yang telah diperiksa:
python -m pip install requests==2.34.2 beautifulsoup4==4.15.0Buat file bernama amazon_scraper.py dan tambahkan konfigurasi awal di bawah ini. Masukkan URL produk target Anda ke dalam PRODUCT_URLS, dengan menjaga setiap URL dalam tanda kutip dan memisahkan entri dengan koma.
</> python
import os
from urllib.parse import urlparse
import requests
from bs4 import BeautifulSoup
MARKETPLACE = "www.amazon.com"
REQUEST_TIMEOUT = 30
OUTPUT_FILE = "amazon_products.csv"
PRODUCT_URLS = [
# Add your target Amazon product URLs here.
]
for url in PRODUCT_URLS:
parsed = urlparse(url)
if parsed.scheme != "https" or parsed.hostname != MARKETPLACE:
raise ValueError("Each URL must use the selected marketplace.")
session = requests.Session()
# Optional: supply the full proxy URL through your environment.
proxy_url = os.environ.get("AMAZON_PROXY_URL")
if proxy_url:
session.proxies.update({
"http": proxy_url,
"https": proxy_url,
})Simpan password proxy dan API key dalam variabel environment yang disediakan melalui development environment atau deployment secret manager Anda. Hindari menyematkan kredensial dalam skrip, melakukan commit ke Git, atau mencetaknya dalam log.
Tips: Konfigurasi ini mempersiapkan sesi tetapi tidak mengambil halaman produk atau mengatur kode ZIP pengiriman Amazon. Biarkan konteks pengiriman tidak terverifikasi sampai alur kerja pengumpulan secara eksplisit menerapkan dan memeriksanya.
Mengambil halaman produk dan memeriksa apa yang dikembalikan
Respons HTTP yang berhasil tidak menjamin bahwa Amazon scraper Anda menerima halaman produk. Server dapat mengembalikan HTTP 200 OK dengan challenge, layar sign-in, atau halaman tak terduga lainnya, jadi periksa status respons dan konten sebelum mengekstrak field produk.
Tambahkan fungsi di bawah ini setelah konfigurasi sesi Anda. Fungsi ini memeriksa kegagalan permintaan, redirect tak terduga, respons non-HTML, indikator challenge umum, dan elemen judul produk.
def fetch_product_page(url):
try:
response = session.get(url, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
except requests.RequestException:
# Avoid logging exception details that could expose proxy credentials.
raise RuntimeError(
"Request failed. Check connectivity and the HTTP response."
) from None
if urlparse(response.url).hostname != MARKETPLACE:
raise RuntimeError("The request redirected to another domain.")
content_type = response.headers.get("Content-Type", "").lower()
if "text/html" not in content_type:
raise RuntimeError("Expected HTML but received another content type.")
soup = BeautifulSoup(response.text, "html.parser")
page_text = soup.get_text(" ", strip=True).lower()
challenge_markers = (
"enter the characters you see below",
"sorry, we just need to make sure you're not a robot",
"validatecaptcha",
)
if (
soup.select_one('form[action*="validateCaptcha"]')
or any(marker in page_text for marker in challenge_markers)
):
raise RuntimeError(
"A challenge page was returned. Pause and review the request."
)
title = soup.select_one("#productTitle")
if title is None or not title.get_text(strip=True):
raise RuntimeError(
"Product title not found. The page may be unexpected "
"or its structure may have changed."
)
return soup, response.urlPanggil fungsi untuk satu URL sebelum memproses daftar lengkap:
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
print("Page passed the initial checks.")
print("Title:", soup.select_one("#productTitle").get_text(strip=True))
except RuntimeError as error:
print("Collection stopped:", error)Beautiful Soup mem-parse HTML di sini untuk memeriksa strukturnya; ekstraksi rekaman produk dilakukan selanjutnya. Pemeriksaan ini bersifat awal: kata-kata challenge dan tata letak halaman dapat berubah, dan menemukan judul tidak mengonfirmasi ASIN yang diminta, varian yang dipilih, atau lokasi pengiriman. Verifikasi hal-hal tersebut secara terpisah sebelum menerima rekaman.
Mengekstrak field produk dan menangani nilai yang hilang
Setelah halaman melewati pemeriksaan awal, ekstrak sekumpulan field kecil: ASIN, judul, harga yang ditampilkan, dan ketersediaan. Simpan URL sumber dan timestamp pengumpulan dengan setiap rekaman agar Anda dapat melacaknya nanti.
Gunakan None ketika field hilang. Harga yang hilang dapat berarti penawaran tidak tersedia, halaman memerlukan pilihan lain, atau selektor tidak lagi cocok. Mengonversinya menjadi nol akan memasukkan harga palsu ke dalam analisis Anda.
Tambahkan kode berikut di bawah fungsi yang sudah ada.
from datetime import datetime, timezone
def text_or_none(soup, selector):
element = soup.select_one(selector)
if element is None:
return None
return element.get_text(" ", strip=True) or None
def extract_product_fields(soup, source_url):
asin_element = soup.select_one("input#ASIN")
asin = (
asin_element.get("value", "").strip() or None
if asin_element is not None
else None
)
# Limit extraction to the main price area to reduce the chance
# of collecting a price from recommendations or another offer.
price_text = text_or_none(
soup,
"#corePriceDisplay_desktop_feature_div "
".priceToPay .a-offscreen",
)
return {
"asin": asin,
"title": text_or_none(soup, "#productTitle"),
"price_text": price_text,
"availability_text": text_or_none(soup, "#availability"),
"source_url": source_url,
"collected_at": datetime.now(timezone.utc).isoformat(),
}Simpan harga sebagai teks yang ditampilkan pada tahap ini. Memisahkan nilai numerik dan mata uang memerlukan validasi terhadap format marketplace; simbol mata uang saja mungkin ambigu.
Setelah fetch berhasil, panggil fungsi ekstraksi:
record = extract_product_fields(soup, final_url)
missing_fields = [
field
for field in ("asin", "title", "price_text", "availability_text")
if record[field] is None
]
print(record)
print("Missing fields:", missing_fields)Tempatkan panggilan ini di dalam blok try yang berhasil dari langkah sebelumnya, segera setelah fetch_product_page(), agar ekstraksi tidak berjalan setelah permintaan gagal.
Nilai yang hilang harus memicu inspeksi daripada pencarian yang lebih luas untuk harga apa pun di halaman. Sebelum menggunakan rekaman untuk perbandingan, verifikasi juga ASIN yang diminta, varian yang dipilih, seller, dan konteks pengiriman.
Mengekspor ke CSV atau JSON dan memvalidasi sampel
Ekspor setiap rekaman produk dengan URL sumber, timestamp pengumpulan, marketplace, dan konteks pengiriman. Pisahkan kode ZIP yang diminta dari lokasi yang benar-benar diamati di halaman: memasukkan target dalam konfigurasi Anda tidak membuktikan bahwa Amazon menerapkannya.
JSON mempertahankan nilai yang hilang sebagai null, sementara ekspor CSV ini membiarkannya kosong. Kedua format tidak boleh mengganti harga yang hilang dengan nol.
Tambahkan fungsi ini di bawah fungsi yang sudah ada.
import csv
import json
def export_records(records, csv_path, json_path):
if not records:
raise ValueError("No records to export.")
fields = list(records[0])
with open(csv_path, "w", encoding="utf-8", newline="") as file:
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
writer.writerows(records)
with open(json_path, "w", encoding="utf-8") as file:
json.dump(
records,
file,
ensure_ascii=False,
indent=2,
allow_nan=False,
)Ganti blok pengujian single-URL sebelumnya dengan yang berikut. Ini menghubungkan fetching, ekstraksi, dan ekspor menggunakan fungsi yang sudah didefinisikan.
if not PRODUCT_URLS:
raise SystemExit("Add a product URL to PRODUCT_URLS first.")
# Leave unknown until you implement delivery-location controls.
REQUESTED_DELIVERY_ZIP = None
try:
soup, final_url = fetch_product_page(PRODUCT_URLS[0])
record = extract_product_fields(soup, final_url)
record.update({
"marketplace": urlparse(final_url).hostname,
"requested_delivery_zip": REQUESTED_DELIVERY_ZIP,
"observed_delivery_zip": None,
"delivery_location_verified": False,
})
export_records(
[record],
OUTPUT_FILE,
"amazon_products.json",
)
print("Exported one record. Validate it before using it.")
except (RuntimeError, ValueError, OSError) as error:
print("Job stopped:", type(error).__name__)Berikut adalah contoh yang menunjukkan bagaimana field yang hilang muncul.
{
"asin": null,
"title": "Sample product, blue",
"price_text": null,
"availability_text": null,
"source_url": "https://www.amazon.com/dp/EXAMPLE123",
"collected_at": "2026-10-14T14:00:00+00:00",
"marketplace": "www.amazon.com",
"requested_delivery_zip": null,
"observed_delivery_zip": null,
"delivery_location_verified": false
}Pemeriksaan validasi: Fungsi ekspor telah diuji pada Python 3.12.14 dengan rekaman sampel. JSON mempertahankan nilai yang hilang dan flag lokasi Boolean, CSV mempertahankan judul yang berisi koma dan membiarkan nilai yang hilang kosong, serta input kosong ditolak. Ini memverifikasi perilaku ekspor; ini tidak memverifikasi pengambilan Amazon langsung atau selektor.
Sebelum menjadwalkan proyek Amazon scraper Python Anda, periksa beberapa rekaman terhadap halaman sumbernya:
Konfirmasi bahwa ASIN, varian yang dipilih, dan penjual sesuai dengan produk dan penawaran yang dimaksud.
Bandingkan harga dan mata uang yang ditampilkan dengan pengaturan pengiriman yang sama.
Periksa timestamp dan URL sumber, serta selidiki field yang diperlukan yang hilang.
Jangan sertakan rekaman yang bergantung pada lokasi dalam perbandingan sampai konteks pengirimannya terverifikasi.
Kegagalan yang diharapkan mencakup permintaan yang diblokir, perubahan tata letak halaman, detail penawaran yang hilang, dan kesalahan penulisan file. Rekaman parsial mungkin masih berisi informasi yang berguna, tetapi tidak boleh dianggap sebagai observasi harga yang lengkap.
Mempelajari cara scraping Amazon mencakup mengenali batasan-batasan tersebut. Jika Anda ingin memahami cara scraping data dari Amazon secara andal, validasi rekaman yang tersimpan sebelum meningkatkan volume pengumpulan.
Cara menggunakan Amazon ASIN scraper tanpa mencampuradukkan produk
Amazon ASIN scraper membantu Anda membangun daftar identifier produk dan mengambil detail terkaitnya. Untuk perbandingan yang andal, jaga agar identifier tersebut tetap terhubung dengan marketplace yang benar, varian yang dipilih, dan penawaran penjual. Jika tidak, perpindahan antara produk atau penawaran dapat terlihat seperti perubahan harga.
Apa itu Amazon Standard Identification Number?
Sebuah Amazon Standard Identification Number (ASIN) adalah identifier alfanumerik 10 karakter yang digunakan untuk mengidentifikasi item dalam katalog Amazon. Ini memberikan alur kerja pengumpulan Anda referensi yang lebih presisi daripada judul produk, yang mungkin berubah atau menyerupai listing lainnya.
Simpan marketplace bersama setiap ASIN dan bedakan identifier dari SKU penjual. ASIN mengidentifikasi item katalog, sementara SKU penjual mengidentifikasi listing dalam sistem inventori penjual itu sendiri. API Amazon menggunakan identifier ini untuk operasi yang berbeda.
Ekstrak ASIN dari URL produk dan hasil pencarian
Perlakukan penemuan ASIN sebagai langkah terpisah dari pengumpulan harga, ketersediaan, dan detail produk lainnya. Daftar identifier memberi tahu scraper Anda item mana yang harus diselidiki; ini tidak mengonfirmasi berapa harga item tersebut saat ini.
Gunakan urutan ini ketika Anda scraping data ASIN Amazon:
Temukan identifier kandidat. Ekstrak dari tautan produk atau atribut listing dalam HTML halaman pencarian yang dikembalikan. Pertahankan URL sumber dan, untuk hasil pencarian, query dan posisinya.
Validasi formatnya. Periksa tepat 10 huruf atau digit. Lulus pemeriksaan ini hanya mengonfirmasi bentuk yang diharapkan, bukan bahwa ASIN ada atau mewakili varian yang Anda maksud.
Deduplikasi antrian pengumpulan. Gunakan marketplace dan ASIN bersama-sama untuk menghindari pengambilan item katalog yang sama berulang kali.
Ambil dan verifikasi detail produk. Bandingkan identifier yang ditemukan dengan item yang benar-benar dikembalikan, kemudian periksa varian yang dipilih sebelum menerima data penawarannya.
Simpan observasi pencarian secara terpisah dari antrian yang sudah dideduplikasi. ASIN yang muncul di bawah dua query mungkin hanya memerlukan satu pengambilan produk, tetapi kedua kemunculan dapat penting untuk analisis visibilitas.
Pisahkan produk induk, varian anak, dan penawaran penjual
Sebuah ASIN induk mengelompokkan variasi terkait dan bukan merupakan penawaran yang dapat dibeli. Sebuah ASIN anak mengidentifikasi variasi tertentu, seperti satu kombinasi ukuran dan warna. Penawaran penjual berada di bawah identitas produk tersebut dan menjelaskan siapa yang menjualnya, dalam kondisi apa, dan dengan harga berapa.
Pertimbangkan contoh ilustratif berikut:
Level | Contoh | Apa yang harus disimpan oleh scraper Anda |
Keluarga produk | Sebuah kaos yang ditawarkan dalam beberapa ukuran dan warna | Parent ASIN dan hubungannya dengan produk turunan |
Varian yang dipilih | Kaos biru, ukuran medium | Child ASIN, warna, dan ukuran |
Penawaran penjual | Penjual A menawarkan varian baru tersebut seharga $18, ditambah ongkos kirim $3 | Identifikasi penjual, kondisi, harga barang, ongkos kirim, dan waktu pengumpulan |
Misalkan proses berikutnya menangkap kaos biru ukuran large seharga $24. Itu adalah varian yang berbeda, jadi melaporkan kenaikan $6 akan menyesatkan. Jika kaos medium justru muncul seharga $20 dari Penjual B, penawaran yang diamati telah berubah, tetapi itu tidak membuktikan bahwa Penjual A menaikkan harganya.
Untuk pemantauan harga, bandingkan marketplace yang sama, child ASIN, penjual, kondisi, dan konteks pengiriman di berbagai waktu pengumpulan. Jika tujuan Anda adalah melacak penawaran apa pun yang ditampilkan Amazon, catat perubahan penjual secara eksplisit agar Anda dapat menjelaskan apa yang berubah.
Cara scrape ulasan Amazon dan mengukur cakupan
Untuk memahami cara scrape ulasan Amazon secara andal, mulailah dengan mendefinisikan umpan balik yang Anda butuhkan dan memeriksa seberapa banyak metode yang Anda pilih dapat mengambilnya. Scraper ulasan Amazon mungkin mengembalikan catatan yang berguna tanpa mencakup setiap ulasan yang terkait dengan produk. Ukur cakupan tersebut sebelum menarik kesimpulan tentang sentimen pelanggan.
Pilih field ulasan yang dibutuhkan riset Anda
Kumpulkan informasi yang cukup untuk menganalisis umpan balik, mengidentifikasi duplikat, dan melacak setiap catatan kembali ke sumbernya.
Field | Mengapa penting |
Review ID | Mengidentifikasi ulasan untuk deduplikasi dan pengumpulan berulang. |
Rating | Menghubungkan umpan balik tertulis dengan skor bintangnya. |
Judul dan teks | Menangkap komentar pelanggan untuk analisis topik dan sentimen. |
Tanggal ulasan | Membantu memisahkan pengalaman terbaru dari umpan balik yang lebih lama. |
Indikator verified-purchase | Menyimpan label verifikasi pembelian jika tersedia; ini bukan jaminan akurasi. |
Varian yang relevan | Mencatat ukuran, warna, atau opsi lain yang terkait dengan ulasan saat ditampilkan. |
Source URL | Menyediakan referensi untuk memeriksa umpan balik asli. |
Simpan field yang tidak tersedia sebagai nilai yang hilang. Misalnya, indikator yang gagal diekstrak oleh scraper Anda harus tetap tidak diketahui daripada dicatat sebagai "not verified." Simpan timestamp pengumpulan secara terpisah dari tanggal publikasi ulasan.
Cara scrape Amazon berdasarkan kode ZIP
Mempelajari cara scrape Amazon berdasarkan kode ZIP dimulai dengan mengatur tujuan pengiriman dan mengonfirmasi bahwa itu tetap diterapkan saat Anda mengumpulkan data produk. Koneksi proxy AS saja tidak menentukan kode ZIP yang digunakan Amazon untuk estimasi pengiriman.
Contoh Python di atas belum mengimplementasikan kontrol lokasi pengiriman. Field lokasinya tetap tidak terverifikasi sampai Anda menambahkan workflow browser atau menggunakan layanan scraping dengan dukungan terdokumentasi untuk pengaturan pengiriman Amazon.
Atur dan verifikasi lokasi pengiriman
Untuk workflow berbasis browser, gunakan urutan berikut:
Buka marketplace target
Buka pemilih lokasi pengiriman Amazon
Tunggu halaman diperbarui
Buka produk target dan pilih variannya
Tangkap lokasi yang teramati bersama field produk
Jaga konsistensi pengaturan pengiriman dan konteks sesi
Beberapa pengaturan berkontribusi pada konteks pengumpulan, tetapi mereka memiliki tujuan yang berbeda.
Pengaturan | Perannya | Yang perlu diverifikasi |
Domain marketplace | Memilih storefront Amazon yang sedang di-query | Request dan halaman akhir menggunakan domain yang dimaksud. |
Alamat pengiriman atau kode ZIP | Menentukan tujuan yang digunakan untuk informasi pengiriman | Halaman produk mencerminkan tujuan yang diminta. |
Cookie dan sesi browser | Menyimpan pilihan lokasi dan status browsing lainnya | Lokasi tetap diterapkan setelah navigasi dan refresh. |
Lokasi proxy | Mengontrol lokasi keluar jaringan | Koneksi menggunakan region yang dimaksud tanpa mengasumsikan bahwa itu mengatur kode ZIP pengiriman. |
Untuk workflow browser kustom, sticky proxy session dapat membantu menjaga kontinuitas jaringan. Ini tidak menggantikan langkah pemilihan lokasi atau membuktikan bahwa Amazon mempertahankan tujuan yang Anda pilih.
Bandingkan produk yang sama dalam kondisi terkontrol
Mulai dengan satu child ASIN dan dua kode ZIP, kumpulkan kedua observasi dalam jendela waktu singkat. Jaga konsistensi varian yang dipilih, kondisi produk, kuantitas, dan status akun. Pertahankan seller tetap konstan jika memungkinkan; jika seller yang ditampilkan berubah, catat perubahan tersebut sebelum menginterpretasikan perbedaan harga.
Simpan detail berikut dengan setiap observasi:
Kode ZIP yang diminta, lokasi pengiriman yang teramati, dan status verifikasi.
Marketplace, child ASIN, varian yang dipilih, seller, dan kondisi.
Harga item yang ditampilkan, mata uang, biaya pengiriman, ketersediaan, dan estimasi pengiriman.
URL sumber dan timestamp pengumpulan.
Untuk perbandingan kecil, gunakan template pencatatan berikut. Ini adalah lembar kerja uji, bukan hasil Amazon yang teramati.
Observasi | Pengujian kode ZIP A | Pengujian kode ZIP B |
Kode ZIP yang diminta | 10001 | 90001 |
Lokasi pengiriman yang teramati | Catat dari respons | Catat dari respons |
Timestamp pengumpulan | Catat waktu aktual | Catat waktu aktual |
Child ASIN dan varian | Catat dan cocokkan | Catat dan cocokkan |
Penjual dan kondisi | Catat dan bandingkan | Catat dan bandingkan |
Harga barang dan pengiriman | Catat secara terpisah | Catat secara terpisah |
Ketersediaan dan estimasi pengiriman | Catat nilai yang ditampilkan | Catat nilai yang ditampilkan |
Perbandingan kode ZIP menggambarkan observasi-observasi tersebut pada waktu-waktu itu. Ini tidak boleh disajikan sebagai bukti perbedaan harga regional yang permanen.
Cara memilih API scraping e-commerce terbaik untuk data produk Amazon
API scraping e-commerce terbaik untuk data produk Amazon adalah yang mengembalikan field yang dibutuhkan alur kerja Anda, dalam kondisi pengumpulan yang tepat, dengan biaya yang berkelanjutan. Evaluasi penyedia menggunakan input dan kriteria penerimaan yang sama agar respons yang cepat namun tidak lengkap tidak mengungguli rekaman yang lebih lambat namun dapat digunakan di atas kertas.
Periksa cakupan field, kontrol lokasi, dan dukungan review
Ubah persyaratan dataset Anda menjadi daftar periksa sebelum pengujian. Pisahkan field esensial dari yang opsional: pekerjaan pemantauan harga mungkin memerlukan child ASIN, penjual, harga, mata uang, dan konteks pengiriman, sementara penemuan produk mungkin memprioritaskan judul, merek, kategori, dan identifier.
Periksa dokumentasi untuk setiap kemampuan yang diperlukan, lalu verifikasi di output. Dukungan untuk "data Amazon" tidak menjamin bahwa setiap endpoint menangani varian, penawaran penjual, kode ZIP pengiriman, dan review dengan sama baik.
Ukur hasil yang dapat digunakan, waktu respons, dan total biaya
Definisikan hasil yang dapat digunakan sebelum menghitung kesuksesan. Untuk perbandingan harga, ini mungkin berarti rekaman dengan child ASIN yang benar, field penawaran yang diperlukan, konteks pengiriman yang terverifikasi, dan timestamp pengumpulan yang dapat diterima. Untuk pemantauan ketersediaan, produk yang tidak tersedia yang teridentifikasi dengan benar mungkin berguna bahkan tanpa harga.
Gunakan definisi yang sama di semua penyedia:
Tingkat hasil yang dapat digunakan = observasi yang diminta yang memenuhi kriteria penerimaan Anda ÷ total observasi yang diminta × 100
Observasi adalah satu pemeriksaan produk-dan-lokasi yang direncanakan pada waktu pengumpulan tertentu. Percobaan ulang dan respons duplikat tidak boleh meningkatkan jumlah observasi yang berhasil.
Lacak kegagalan berdasarkan penyebab: field yang diperlukan hilang, produk atau lokasi yang salah, output duplikat, kegagalan pengambilan, dan kegagalan parsing. Ini memudahkan untuk melihat apakah kelemahan penyedia memengaruhi beban kerja aktual Anda.
Ukur waktu yang berlalu hingga data yang dapat digunakan tersedia, termasuk percobaan ulang dan polling asinkron. Untuk pengujian yang lebih besar, bandingkan waktu respons tipikal dengan permintaan yang lebih lambat daripada hanya mengandalkan rata-rata.
Hitung biaya menggunakan prinsip yang sama:
Biaya per observasi yang dapat digunakan = total biaya pengujian ÷ observasi yang dapat digunakan
Sertakan percobaan ulang yang dapat ditagih, biaya rendering, fitur lokasi, dan tambahan lain yang diperlukan. Untuk pekerjaan berulang, perhitungkan juga minimum langganan dan pekerjaan yang diperlukan untuk membersihkan atau memperbaiki output.
Uji sampel yang representatif sebelum meningkatkan skala
Mulai dengan sekitar 20 URL produk di tiga atau empat kategori, mencakup berbagai varian dan beberapa produk yang diamati tidak tersedia. Jalankan masing-masing terhadap dua kode ZIP pengiriman untuk pengujian pertama yang dapat dikelola dengan sekitar 40 observasi.
Jaga agar input dan pengaturan tetap konsisten di seluruh penyedia, kumpulkan dalam jangka waktu singkat, dan catat setiap perubahan halaman sumber yang dapat memengaruhi perbandingan. Periksa setiap record dalam sampel awal ini sebelum memperkenalkan jadwal berulang.
Gunakan tabel ini untuk mendokumentasikan hasil:
Persyaratan | Pengujian | Hasil | Keterbatasan |
Field produk yang diperlukan | Periksa setiap record terhadap daftar field yang disepakati | Catat observasi lengkap dari total | Catat field yang tidak ada atau terisi secara tidak konsisten. |
Varian yang benar | Bandingkan child ASIN dan atribut yang dikembalikan dengan varian yang diminta | Catat kecocokan dan ketidakcocokan | Tandai redirect atau pemilihan varian yang tidak terselesaikan. |
Kontrol lokasi pengiriman | Minta dua kode ZIP dan periksa konteks pengiriman yang diamati | Catat kecocokan lokasi yang terverifikasi | Nyatakan ketika hanya kode ZIP yang diminta yang dikembalikan. |
Produk tidak tersedia | Periksa apakah item yang tidak tersedia diidentifikasi tanpa membuat harga | Catat status yang akurat | Bedakan ketidaktersediaan sumber dari kegagalan ekstraksi. |
Dukungan review | Uji pekerjaan review kecil terpisah dengan filter dan pagination yang ditentukan | Catat review unik yang dapat digunakan | Dokumentasikan batas akses dan cakupan yang tidak diketahui. |
Kesegaran | Periksa timestamp pengumpulan dan perilaku cache yang didokumentasikan | Catat kesegaran terhadap persyaratan Anda | Tandai timestamp yang hanya menunjukkan waktu respons. |
Waktu respons | Ukur dari pengiriman hingga output yang dapat digunakan, termasuk retry | Catat waktu tipikal dan paling lambat | Sampel kecil tidak dapat membuktikan performa dalam skala besar. |
Total biaya | Rekonsiliasi penggunaan yang ditagih dengan observasi yang dapat digunakan | Catat biaya per observasi yang dapat digunakan | Sertakan ekstra yang diperlukan dan minimum langganan. |
Pilih berdasarkan persyaratan yang paling penting untuk workflow scraping data produk Amazon Anda. Provider yang berkinerja baik pada tes kecil ini layak mendapat trial yang lebih besar; namun belum menunjukkan performa yang sama di seluruh katalog Anda.
Menggunakan kode GitHub untuk Amazon scraper Anda
Mencari "how to scrape amazon product data github" dapat mengarahkan Anda ke scraper yang dapat dijalankan, integrasi API, dan tutorial dengan persyaratan yang sangat berbeda. Sebelum menginstal repository, pastikan apa yang dilakukannya secara lokal, layanan apa yang dibutuhkannya, dan apakah outputnya sesuai dengan proyek Anda.
Periksa apa yang sebenarnya disediakan repository
Baca README bersama dengan kode yang mengirim request. Nama repository saja tidak memberi tahu Anda bagaimana collection bekerja.
Tipe repository | Apa yang disediakan | Apa yang harus diperiksa |
Standalone scraper | Kode yang mengambil halaman dan mengekstrak field | Apakah Anda harus menyediakan proxy, dependensi browser, atau infrastruktur tambahan |
API client | Kode yang berkomunikasi dengan layanan terpisah | Kredensial yang diperlukan, endpoint yang didukung, dan biaya layanan |
Tutorial | Contoh yang mendemonstrasikan teknik tertentu | Langkah setup, validasi, dan error-handling mana yang belum selesai |
Contoh layanan komersial | Kode sampel yang menunjukkan cara menggunakan produk provider | Persyaratan akun, batas trial, dan dependensi berbayar |
Mengapa Amazon scraper Anda mengembalikan hasil yang diblokir, kosong, atau salah
Ketika Amazon scraper menghasilkan output yang tidak terduga, periksa respons sebelum mengubah pengaturan koneksi. Request yang diblokir, offer yang hilang, dan selector yang rusak memerlukan perbaikan yang berbeda. Merotasi IP tidak akan memperbaiki parser atau mengembalikan lokasi pengiriman yang tidak pernah diterapkan.
Gejala | Apa yang harus diselidiki | Apa yang harus dilakukan selanjutnya |
Halaman access-denied atau challenge | Status HTTP, konten halaman yang dikembalikan, frekuensi request, dan pembatasan akses | Jeda kegagalan berulang dan tinjau metode collection. Gunakan retry terbatas untuk error sementara daripada berulang kali meminta halaman challenge. |
Respons berhasil tetapi tidak ada field produk | Apakah respons berisi halaman produk, markup yang tidak terduga, atau konten yang hilang dari HTML awal | Periksa HTML yang dikembalikan. Perbarui selector hanya setelah mengonfirmasi konten yang dimaksud ada; evaluasi rendering browser jika field yang diperlukan dimuat secara dinamis. |
Harga tidak ada | Ketersediaan produk, varian yang dipilih, penawaran penjual, dan selektor harga | Bandingkan halaman dengan rekaman yang diekstrak. Pertahankan nilai yang hilang dan catat kemungkinan penyebabnya daripada mengganti dengan nol atau mengumpulkan harga yang tidak terkait. |
Informasi pengiriman salah | Apakah kode ZIP diterapkan dan dipertahankan melalui navigasi atau perubahan sesi | Periksa tujuan yang diamati pada halaman produk. Terapkan kembali dan verifikasi lokasi, lalu ulangi pengamatan yang terpengaruh. |
Produk atau ulasan duplikat | Paginasi berulang, input yang tumpang tindih, dan penanganan identifier | Deduplikasi antrian pengambilan produk berdasarkan marketplace dan ASIN, serta ulasan berdasarkan marketplace dan ID ulasan jika tersedia. Pertahankan pengamatan yang disengaja dari waktu atau lokasi yang berbeda. |
Hasil berbeda di berbagai eksekusi | Waktu pengumpulan, varian yang dipilih, penjual, kondisi, lokasi pengiriman, dan pengaturan sesi | Bandingkan konteks yang tersimpan sebelum memberi label perbedaan sebagai perubahan harga atau ketersediaan. Ulangi pemeriksaan dalam kondisi yang konsisten jika penyebabnya masih belum jelas. |
Simpan log error singkat dengan URL sumber, timestamp, status respons, kategori kegagalan, dan pengaturan pengumpulan yang relevan. Kecualikan kredensial dan nilai sesi sensitif. Ini memberi Anda cukup bukti untuk membedakan masalah pengambilan dari error ekstraksi dan perubahan asli pada halaman.
Scraping data produk Amazon: praktik terbaik dan pedoman etis
Web scraping etis dimulai dengan tujuan yang jelas: informasi apa yang Anda butuhkan, bagaimana Anda akan memperolehnya, dan apa yang akan Anda lakukan setelahnya. Jika Anda mencari "praktik terbaik scraping data produk Amazon pedoman etis," gunakan pemeriksaan berikut untuk mengubah pertanyaan tersebut menjadi keputusan konkret.
Tinjau ketentuan Amazon dan penggunaan data yang Anda inginkan
Konten yang terlihat publik tidak secara otomatis dilengkapi dengan izin tanpa batas untuk mengumpulkan, menyimpan, atau menerbitkan ulang. Conditions of Use Amazon membahas data mining, robot, dan alat ekstraksi serupa. Tinjau ketentuan yang berlaku untuk marketplace Anda dan API atau layanan data apa pun yang Anda gunakan sebelum memulai pengumpulan.
Pertimbangkan pengumpulan dan penggunaan ulang secara terpisah. Analisis harga internal, penerbitan kutipan ulasan, dan redistribusi dataset produk melibatkan penggunaan materi yang berbeda. Konfirmasi izin yang relevan dengan proyek Anda, termasuk pembatasan apa pun pada penyimpanan, tampilan, atau redistribusi. Langganan scraping atau koneksi proxy tidak dengan sendirinya memberikan hak atas konten Amazon.
Pertahankan asal-usul dan dokumentasikan keterbatasan
Orang lain harus dapat memahami dari mana rekaman berasal dan apa yang diwakilinya tanpa merekonstruksi scraper Anda. Pertahankan URL sumber, marketplace, ASIN, timestamp pengumpulan, varian yang dipilih, penjual, dan konteks pengiriman yang diminta dan diamati jika relevan.
Tambahkan catatan pengumpulan singkat yang mendokumentasikan:
Versi alat atau kode dan pengaturan pengumpulan.
Filter, pengurutan, paginasi, dan kondisi penghentian.
Field yang hilang, permintaan yang gagal, dan aturan deduplikasi.
Apakah pengaturan lokasi diverifikasi dan hasil di-cache.
Kesenjangan cakupan yang diketahui, terutama untuk ulasan pelanggan.
Pisahkan nilai yang diamati dari asumsi atau field yang dihitung. Jika cakupan tidak diketahui, katakan demikian; jika harga hilang, biarkan hilang. Perbedaan tersebut membuat dataset lebih mudah diaudit dan membantu mencegah perbandingan yang menyesatkan.
Untuk workflow khusus, jelajahi katalog proxy CyberYozh App dan pilih infrastruktur sesuai lokasi target Anda, durasi sesi yang diperlukan, dan traffic yang diharapkan. Mulailah dengan pekerjaan pengumpulan kecil yang tervalidasi sebelum memperluas beban kerja.
