Beranda BlogPengikisan web Analisis Pesaing Amazon: Panduan Langkah demi Langkah

Analisis Pesaing Amazon: Panduan Langkah demi Langkah

oleh Kadek

Langkah 4: Ekstrak data produk Amazon

Sekarang setelah kita memiliki daftar ASIN, kita dapat menggunakan Titik Akhir Data Terstruktur untuk mendapatkan data produk terperinci yang kita perlukan untuk analisis.

Catatan: Baca selengkapnya tentang Titik Akhir Data Terstruktur kami dan scraping terkait dari Amazon.

Kita akan mulai dengan membuat file CSV baru dengan nama products_info.csv untuk menyimpan data produk yang kami ekstrak.

Penggunaan csv.writer fungsi, kami menyiapkan objek Writer untuk menulis ke file ini.

Baris pertama yang ditulis ke file berisi judul “Nama”, “Merek”, “Harga”, “Total Peringkat”, dan “Ulasan”. Ini adalah data yang kami kumpulkan untuk setiap produk.

with open('products_info.csv', 'w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerow(('Name', 'Brand', 'Price', 'Total Reviews', 'Ratings'))

Kami mengulangi setiap ASIN dalam daftar ASIN kami. Kami kemudian menyiapkan payload untuk setiap ASIN dengan kunci API, ASIN, dan kode negara kami (dalam hal ini, “kami”).

Payload ini digunakan untuk mengambil data produk secara rinci.

for asin in ASINS:
        product_payload = {
            'api_key': API_KEY,
            'asin': asin,
            'country': 'us'
        }


Untuk setiap ASIN dalam daftar kami, kami membuat permintaan ke titik akhir produk ScraperAPI:

https://api.scraperapi.com/structured/amazon/product

Setelah menerima respons yang berhasil, kami mengurai data JSON dengan informasi produk mendetail.

 try:
            product_response = requests.get('https://api.scraperapi.com/structured/amazon/product', params=product_payload)
            if product_response.status_code == 200:
                product_data = product_response.json()

Berikut tampilan data produk dalam format JSON:

{
        "name": "Wireless Earbuds Bluetooth Headphones 80hrs Playback Ear Buds IPX7 Waterproof & Power Display with ENC Noise Canceling Mic Over-Ear Stereo Bass Earphones with Earhooks for Sports/Workout/Running",
        "product_information": {
            "package_dimensions": "4.29 x 3.5 x 1.54 inches",
            "item_weight": "5 ounces",
            "asin": "B0CPWGWZWP",
            "item_model_number": "BX17",
            "customer_reviews": {
                "ratings_count": 109,
                "stars": 5
            },
            "best_sellers_rank": (
                "#40,680 in Electronics (See Top 100 in Electronics)",
                "#2,540 in Earbud & In-Ear Headphones"
            ),
            "date_first_available": "December 10, 2023",
            "manufacturer": "Catitru",
            "number_of_items": "1"
        },
        "brand": "Brand: Catitru",
        "brand_url": "https://www.amazon.com/Catitru/b/ref=bl_dp_s_web_115788612011?ie=UTF8&node=115788612011&field-lbr_brands_browse-bin=Catitru",
        "full_description": "Product Description Catitru Wireless Earbuds Sport High Quality Stereo Sound ENC Noise Cancelling 80hrs Playtime IPX7 Waterproof & Sweat Resistant Unique Button Design Designed for Sports",
        "pricing": "$89.99",
        "shipping_price": "FREE",
        "availability_status": "In Stock",
        "images": (
            "https://m.media-amazon.com/images/I/41ITCINhi6L.jpg",
            "https://m.media-amazon.com/images/I/51Fdl0Ko4CL.jpg",
            "https://m.media-amazon.com/images/I/51Cd28kpBAL.jpg",
            "https://m.media-amazon.com/images/I/51BUgPqvL5L.jpg",
            "https://m.media-amazon.com/images/I/51yeY3NUeOL.jpg",
            "https://m.media-amazon.com/images/I/51MwrWN5EML.jpg",
            "https://m.media-amazon.com/images/I/51asM0-26dL.jpg"
        ),
        "product_category": "Electronics > Headphones, Earbuds & Accessories > Headphones & Earbuds > Earbud Headphones",
        "average_rating": 5,
        "feature_bullets": (
            "【Sports Comfort & IPX7 Waterproof】- BX17 wireless headphones Designed with elastic and soft ear hooks, these Bluetooth sports earbuds stay securely in place and provide ultimate comfort even during extended workout sessions. The earphones come with three different sizes of ear tips, ensuring a perfect fit for various ear sizes. With an IPX7 waterproof rating, they effectively resist water splashes and sweat, making them ideal for sports, fitness, workouts, and running.",
            "【Fast Pairing & Wide Compatibility】- BX17 wireless earbuds Built in hall switch, headphones wireless bluetooth will auto power on and connect with your last device once you open the charging case after first connection, which is faster and more convenient.",
            "【ENC Noise Cancelling Earbuds and Immersive Stereo】- BX17 ear buds have strong 12mm speakers driving units and in ear acoustic structure support, which produces a strong bass and bright treble. The unique acoustic design of the cavity room, balanced internal and external air pressure, avoid sound loss, ensure stable sound and penetrating power, even in a noisy environment can provide clear voice detection. You can enjoy your personal space whether you are indoors, work or exercise.",
            "【Upgraded 80H Playtime & LED Power Display】- BX17 upgraded Bluetooth earbuds with a longer battery charging case, it has 15 hrs more playtime than BX17 1st generation. Up to 80 hrs of total listening time in turn, one earbud can be used for 15 hours on one charge. The case can provide extra 8 times the full charge for earbuds. The ear buds wireless bluetooth earbuds with a dual digital power display case, easy to know the remaining power in real-time while opening or closing the case.",
            "【Type-C Fast Charging and Intuitive Button Touch Controls】- Our wireless charging case can be used with a fast Type-C cable. The button control feature provides a hassle-free user experience, with just one touch, you can always be in control of your audio experience, easily controlling music playback, adjusting volume and managing calls. All at your fingertips."
        ),
        "total_reviews": 109,
        "model": "BX17",
        "ships_from": "Amazon",
        "sold_by": "Yishenghuimaoyiyouxiangongsi",
        "aplus_present": true
    }



Dari data JSON ini, kami hanya mengekstrak detail penting - nama, merek, harga, jumlah total ulasan, dan peringkat rata-rata, yang kami tulis ke file CSV kami dan menyimpan data untuk setiap produk.

Kami menggunakan format CSV karena lebih mudah untuk diedit jika kami melakukan analisis di Excel.

csv_writer.writerow((
                product_data.get('name'),
                product_data.get('brand'),
                product_data.get('pricing'),
                product_data.get('total_reviews'),
                product_data.get('average_rating')
            ))



Kami juga menyediakan penanganan kesalahan untuk setiap permintaan atau pengecualian yang gagal untuk memastikan kami mengetahui masalah apa pun selama proses ekstraksi data.

else:
                print(f"Error for ASIN {asin}: Received status code {product_response.status_code}")
        except requests.RequestException as e:
            print(f"Failed to fetch data for ASIN {asin}: {e}")

Langkah 5: Membersihkan data Amazon untuk analisis

Seperti inilah tampilan file CSV kami info_produk.csv saat ini terlihat seperti:

Ekspor data produk AmazonEkspor data produk Amazon

Melihat file tersebut, ada beberapa masalah integritas data:

  • Nama produk cukup panjang dan berisi informasi berlebih yang mungkin tidak diperlukan untuk analisis kami.
  • Nama merek berisi teks tambahan seperti “Kunjungi Toko PocBuds”, yang tidak diperlukan untuk analisis kami.
  • Harga mengandung tanda dolar (“$”), menjadikannya string dalam kumpulan data. Untuk analisis numerik apa pun kita perlu mengubahnya menjadi format numerik.

Untuk mengatasi masalah integritas data ini dan menyiapkan kumpulan data untuk dianalisis, kami akan:

  • Hapus kolom “Nama”: Pada artikel ini, kami akan fokus pada analisis harga dan penilaian. Karena nama produk terlalu detail, kami menghapus kolom ini dan menggunakan kolom Merek sebagai referensi.
  • Bersihkan kolom Merek: Kami menghapus teks tambahan seperti “Kunjungi toko (merek)” untuk menjaga nama merek tetap jelas dan ringkas.
  • Format kolom Harga: Kami juga mengonversi nilai harga string ke format numerik dengan menghilangkan tanda dolar (“$”) dan mengonversi teks menjadi angka floating point.
  • Periksa nilai yang hilang: Kami memastikan tidak ada nilai yang hilang pada kolom “Peringkat Keseluruhan” dan “Peringkat”. Jika ada yang ditemukan, kami menghapus baris yang memuatnya.
  • Standarisasi format data: Kami memastikan bahwa seluruh data, khususnya pada kolom Peringkat dan Total Peringkat, mengikuti format yang konsisten untuk memungkinkan analisis komparatif yang akurat.

Kami akan menggunakannya pandas Perpustakaan untuk membersihkan data kami untuk mencapai hal ini.

Mempersiapkan DataFrame kami

Kami memuat file CSV kami ke a pandas DataFrame, alat manipulasi data yang sangat serbaguna.

df = pd.read_csv('products_info.csv')

Hapus kolom Nama.

Untuk menghapus kolom Nama, kami menggunakan drop() Fungsi. Fungsi drop di Pandas secara efisien menghapus kolom atau baris tertentu.

Dengan mengaturnya axis=1kami menentukan operasi berdasarkan kolom dan inplace=True memastikan bahwa perubahan diterapkan langsung ke DataFrame kami.

df.drop('Name', axis=1, inplace=True)

Menggunakan fungsi replace()

Untuk memastikan kolom Merek kami konsisten, kami menggunakan replace() Fungsi. Fungsi ini mencari pola teks tertentu dan menggantinya dengan teks yang diinginkan (dalam hal ini, string kosong untuk menghapus teks yang tidak diinginkan).

Kemudian, strip() Menghapus semua spasi di awal dan akhir, memastikan nama merek kami bersih dan konsisten.

df('Brand') = df('Brand').str.replace('Visit the ', '', regex=False).str.strip()
df('Brand') = df('Brand').str.replace('Brand: ', '', regex=False).str.strip()

Ubah data menjadi angka

Untuk mengonversi kolom Harga menjadi float untuk analisis numerik, pertama-tama kita gunakan replace(); Ini akan menghilangkan tanda dolar dan koma.

Kemudian, astype(float) mengubah string yang sudah dibersihkan menjadi angka floating point dan menyiapkannya untuk semua operasi matematika yang diperlukan dalam analisis kami.

df('Price') = df('Price').str.replace(r'(\$,)', '', regex=True).astype(float)


Hapus baris kosong

Untuk menghapus baris dengan nilai yang hilang, kami menggunakan dropna(); Fungsi ini memindai DataFrame dan menghapus baris apa pun yang datanya hilang, memastikan kelengkapan dan keandalan analisis kami.

Setelah dibersihkan, kami menyimpan kumpulan data yang telah disempurnakan dalam file CSV baru. info_produk_pembersih.csv. File ini sekarang berisi data yang dioptimalkan dan diproses, siap untuk dianalisis.

df.to_csv('cleaned_products_info.csv', index=False)
print("Data cleaning complete, cleaned file saved.")

Inilah tampilan CSV baru kami sekarang, jauh lebih tepat dan siap untuk dianalisis:

Bersihkan data produk AmazonBersihkan data produk Amazon

Sekarang kami siap memahami data yang diekstraksi dan menggunakannya untuk membuat keputusan berdasarkan data untuk peluncuran produk kami!

Pos terkait

Tinggalkan Komentar