Beranda BlogPengikisan web Cara Memindai Data Produk Macy dengan Python (Panduan Lengkap)

Cara Memindai Data Produk Macy dengan Python (Panduan Lengkap)

oleh Kadek

Langkah 3: Analisis kode HTML

Mengurai HTML dengan BeautifulSoup memungkinkan kita bekerja dengan struktur data BeautifulSoup yang lebih sederhana dan bertingkat dibandingkan dengan HTML murni, sehingga membuat struktur halaman lebih mudah dinavigasi.


	soup = BeautifulSoup(html_response, "lxml")

Namun, sebelum menavigasi pohon yang dianalisis, kita perlu memahami cara menargetkan elemen yang kita inginkan.

Langkah 4: Pahami struktur situs web Macy

Saat mencari kueri target kami, situs web Macy memberikan hasil yang serupa dengan yang ditunjukkan di bawah ini:

Halaman produk Sweater Natal Macy  Halaman produk Sweater Natal Macy

Semua di bawah “sweter Natal” dapat diekstraksi, termasuk nama merek, harga, deskripsi, ulasan, gambar, dan tautan produk, seperti yang terlihat pada tangkapan layar beranotasi di bawah.

Menampilkan komponen halaman produk MacyMenampilkan komponen halaman produk Macy

Sangat penting untuk memahami tata letak HTML suatu halaman. Namun, Anda tidak perlu menjadi ahli HTML berkat Alat Pengembang, sebuah fitur yang tersedia di sebagian besar browser web utama.

Untuk mengakses alat pengembang, Anda dapat mengklik kanan pada halaman web dan memilih “Memeriksa” atau gunakan pintasan “CTRL+SHIFT+I” untuk pengguna Windows atau “Opsi + ⌘ + I” di Mac. Ini akan membuka kode sumber halaman web yang kami targetkan.

Tinjau elemen halaman produk MacyTinjau elemen halaman produk Macy

Seperti yang terlihat di atas, semua produk dicantumkan sebagai item, jadi kami perlu mengumpulkan semua listingan ini.

Untuk mengikis elemen HTML, kita memerlukan pengenal yang terkait dengannya. Ini bisa menjadi “PENGENAL” dari elemen, nama kelas apa pun, atau atribut HTML lainnya dari elemen tersebut. Dalam kasus kami, kami menggunakan nama kelas sebagai pengenal.

Setelah meninjau halaman hasil pencarian, kami melihat bahwa setiap wadah produk adalah satu div Elemen dengan kelas productThumbnail.

Elemen Gambar Kecil Produk Kelas Div Macy Elemen Gambar Kecil Produk Kelas Div Macy

Kita bisa mendapatkan elemen HTML ini menggunakan BeautifulSoup
find_all() Berfungsi untuk menemukan semua instance a div dengan kelas productThumbnail.


	product_containers = soup.find_all("div", class_="productThumbnail")

Semua ini div Elemen mewakili wadah produk di situs web.

Kita dapat mengikuti proses yang sama untuk menemukan nama kelas untuk setiap elemen yang ingin kita cari.

Langkah 5: Ekstrak data produk

Untuk mengekstrak data yang diperlukan, kita perlu melakukan iterasi melalui setiap container produk dengan a for lingkaran dan dengan select_one() Dan
find() Fungsi yang mengembalikan elemen pertama yang cocok:


	product_data_list = ()
	for product_container in product_containers:
	   # Extract brand
	   brand_element = product_container.select_one(".productBrand")
	   brand_name = brand_element.text.strip() if brand_element else None
	
	   # Extract price
	   price_element = product_container.select_one(".prices .regular")
	   price = price_element.text.strip() if price_element else None
	
	   # Extract description
	   description_element = product_container.select_one(".productDescription .productDescLink")
	   description = description_element("title").strip() if description_element else None
	
	   # Extract rating
	   rating_element = product_container.select_one(".stars")
	   rating = rating_element("aria-label") if rating_element else None
	
	   # Extract image URL
	   image_element = product_container.find("img", class_="thumbnailImage")
	   image_url = image_element("src") if image_element and "src" in image_element.attrs else None```

Setelah mengekstrak data, kami membuat kamus dan menambahkannya ke daftar dengan nama product_data.


	product_data = {
        "Product Brand Name": brand_name,
        "Price": price,
        "Description": description,
        "Rating": rating,
        "Image URL": image_url,
        "Product URL": product_url,
    }

    # Append the product data to the list
    product_data_list.append(product_data)

Itu text.strip() Fungsi ini mengekstrak konten teks elemen dan menghilangkan spasi di awal atau akhir.

Langkah 6: Tulis hasilnya ke file JSON

Terakhir, kami menyimpan data yang diambil ke file JSON dengan membuka file dalam mode tulis (menggunakan “w' sebagai argumen kedua open()) dan dengan json.dump() Berfungsi untuk menulis daftar data produk ke file:


	output_file = "Macy_product_results.json"
	with open(output_file, "w", encoding="utf-8") as json_file:
		json.dump(product_data_list, json_file, indent=2)
	print(f"Scraped data has been saved to {output_file}")

Sebagai masukan, kami menampilkan pesan sukses ke konsol setelah membuat file.

Selamat, Anda baru saja menghapus data produk Macy!

Berikut adalah pratinjau keluaran scraper, seperti yang terlihat di
Macy_product_results.json Mengajukan:


	{
		"Product Brand Name": "Karen Scott",
		"Price": "$49.50",
		"Description": "Women's Holiday Sweater, Created for Macy's",
		"Rating": "4.4235 out of 5 rating with 1072 reviews",
		"Image URL": "https://slimages.macysassets.com/is/image/MCY/products/1/optimized/26374821_fpx.tif?$browse$&wid=224&fmt=jpeg",
		"Product URL": "/shop/product/karen-scott-womens-holiday-sweater-created-for-macys?ID=14175633&isDlp=true"
	  },
	  {
		"Product Brand Name": "Style & Co",
		"Price": "$59.50",
		"Description": "Women's Holiday Themed Whimsy Sweaters, Regular & Petite, Created for Macy's",
		"Rating": "4.2391 out of 5 rating with 46 reviews",
		"Image URL": "https://slimages.macysassets.com/is/image/MCY/products/0/optimized/24729680_fpx.tif?$browse$&wid=224&fmt=jpeg",
		"Product URL": "/shop/product/style-co-womens-holiday-themed-whimsy-sweaters-regular-petite-created-for-macys?ID=16001406&isDlp=true"
	  },
	  {
		"Product Brand Name": "Charter Club",
		"Price": "$59.50",
		"Description": "Holiday Lane Women's Festive Fair Isle Snowflake Sweater, Created for Macy's",
		"Rating": "4.8571 out of 5 rating with 7 reviews",
		"Image URL": "https://slimages.macysassets.com/is/image/MCY/products/2/optimized/23995392_fpx.tif?$browse$&wid=224&fmt=jpeg",
		"Product URL": "/shop/product/holiday-lane-womens-festive-fair-isle-snowflake-sweater-created-for-macys?ID=15889755&isDlp=true"
	  }, … More JSON Data,

Ringkasan

Dalam tutorial ini kami membahas hal berikut:

  • Lewati mekanisme anti-scraping Macy dengan ScraperAPI
  • Navigasikan struktur situs web Macy dengan BeautifulSoup
  • Ekstrak daftar produk ke file JSON

Saya harap Anda menikmati panduan ini. Anda dipersilakan untuk menggunakan skrip ini dalam proyek Anda. Jika Anda memiliki pertanyaan, silakan hubungi tim dukungan kami. Kami di sini untuk membantu.

Apakah Anda memerlukan lebih dari 3 juta kredit API?
Hubungi tim penjualan kami untuk mengembangkan solusi terbaik untuk proyek Anda.

Pos terkait

Tinggalkan Komentar