Python Kullanarak Amazon Ürün İncelemelerini ve Fiyatlandırma Verilerini Kazıyın
Yayınlanan: 2018-08-28Sun Tzu Savaş Sanatı'nda " Düşmanı ve kendini tanıyorsan, yüzlerce savaşın sonucundan korkmana gerek yok" der. Bu, hemen hemen her işletme için, özellikle de e-ticaret işi için geçerlidir. Doğru fikre, doğru insanlara, doğru USP'ye, doğru ürünlere ve doğru fiyatlara sahip olabilirsiniz. Her nasılsa, yeterli değil. Ayrıca, iş modelinizin başarılı olup olmayacağını belirlemek için yeterli rekabet verisine ve içgörüye sahip olmanız gerekir. Hemen hemen tüm e-ticaret şirketlerinin, e-ticaretin Goliath'ına karşı nasıl önlem aldığını görmek için önce Amazon'u taramalarının nedeni budur.
Amazon Ürün İncelemelerini Neden Kazımalısınız?
Amazon, devasa ve derin ürün kategorilerine sahip olmanın yanı sıra, dünyanın neredeyse her köşesine teslimat yapıyor ve ülkeye özgü on üç web sitesine sahip. Amazon'daki ürün verilerini kazımak, size ilginç ürün ve iş bilgileri sağlayabilir.
Bu kodu bir servis sağlayıcının yardımıyla otomatikleştirmek, e-Ticaret mağazanızı kurmadan önce Amazon ürün verilerini marka ve kategori bazında taramanıza ve kendi ürün veritabanınızı oluşturmanıza olanak tanır. İşinize yeni başlıyorsanız, önemli ölçüde adam saatinden ve paradan tasarruf etmenize yardımcı olacaktır.
Python Kullanarak Web Kazıma Amazon Ürün İncelemeleri
“Seyahat sitesinden otel verileri nasıl çıkarılır” makalesinde web kazıma ortamının nasıl kurulacağını gösterdik. Python'da yeniyseniz, adımları izleyin. Her şey aynı kalır. Atom, Python'u kurun, ardından BeautifulSoup'u kurmak için pip kullanın ve ardından bu programı kopyalayıp editör ekranına yapıştırın ve amazon_data_extractor.py adıyla kaydedin.
Kodu kopyalamakta zorluk çekiyorsanız, buradan da indirebilirsiniz. Dosyayı indirebilir ve Atom'da açabilirsiniz.
[kod dili=”python”]
#!/usr/bin/python
# -*- kodlama: utf-8 -*-
urllib.request'i içe aktar
urllib.parse'ı içe aktar
urllib.error'ı içe aktar
bs4'ten BeautifulSoup'u içe aktarın
ssl'yi içe aktar
json'u içe aktar
# SSL sertifika hatalarını yok saymak için
ctx = ssl.create_default_context()
ctx.check_hostname = Yanlış
ctx.verify_mode = ssl.CERT_NONE
url=input(“Amazon Ürün URL'sini Girin- “)
html = urllib.request.urlopen(url, bağlam=ctx).read()
çorba = GüzelSoup(html, 'html.parser')
html = çorba.prettify('utf-8')
product_json = {}
# Bu kod bloğu, ürünün Markasını çıkarmaya yardımcı olacaktır.
çorba.findAll('div', attrs={'class': 'a-box-group'} içindeki div'ler için):
denemek:
product_json['marka'] = divs['veri-markası']
kırmak
hariç:
geçmek
# Bu kod bloğu, öğenin Prodcut Başlığını çıkarmaya yardımcı olacaktır.
çorba.findAll('span', attrs={'id': 'productTitle'}) içindeki yayılma alanları için:
name_of_product = spans.text.strip()
product_json['name'] = name_of_product
kırmak
# Bu kod bloğu, öğenin fiyatını dolar cinsinden çıkarmaya yardımcı olacaktır.
çorba.findAll('div') içindeki div'ler için:
denemek:
fiyat = str(divs['data-asin-price'])
product_json['fiyat'] = '$' + fiyat
kırmak
hariç:
geçmek
# Bu kod bloğu, öğenin görüntüsünün dolar cinsinden çıkarılmasına yardımcı olacaktır.
çorba.findAll('div', attrs={'id': 'rwImages_hidden'} içindeki div'ler için):
divs.findAll('img', attrs={'style': 'display:none;' içindeki img_tag için
}):
product_json['img-url'] = img_tag['src']
kırmak
# Bu kod bloğu, ürünün ortalama yıldız derecesini çıkarmaya yardımcı olacaktır.
çorbadaki i_tag'ler için.findAll('i',
attrs={'veri kancası': 'ortalama yıldız derecelendirmesi'}):
i_tags.findAll('span', attrs={'class': 'a-icon-alt'}) içindeki yayılma alanları için:
product_json['yıldız derecelendirmesi'] = spans.text.strip()
kırmak
# Bu kod bloğu, ürünle ilgili müşteri incelemelerinin sayısını çıkarmaya yardımcı olacaktır.
çorba.findAll('span', attrs={'id': 'acrCustomerReviewText') içindeki yayılmalar için
}):
eğer spans.text:
inceleme_sayısı = spans.text.strip()
product_json['müşteri-inceleme-sayısı'] = inceleme_sayısı
kırmak
# Bu kod bloğu, ürünün en iyi özelliklerini ve ayrıntılarını çıkarmaya yardımcı olacaktır.
product_json['detaylar'] = []
ul_tag'ler için çorba.findAll('ul',
attrs={'class': 'a-sırasız-liste a-dikey bir-aralık-yok'
}):
ul_tags.findAll('li') içindeki li_tag'ler için:
li_tags.findAll('span',
attrs={'class': 'a-list-item'}, text=True,
özyinelemeli=Yanlış):
product_json['detaylar'].append(spans.text.strip())
# Bu kod bloğu, ürünün kısa incelemelerinin çıkarılmasına yardımcı olacaktır.
product_json['kısa incelemeler'] = []
çorbadaki a_tag'ler için.findAll('a',
attrs={'class': 'a-size-base a-link-normal inceleme-başlığı a-color-base a-text-bold'
}):
short_review = a_tags.text.strip()
product_json['short-reviews'].append(short_review)
# Bu kod bloğu, ürünün uzun incelemelerinin çıkarılmasına yardımcı olacaktır.
product_json['uzun incelemeler'] = []
çorba.findAll('div', attrs={'data-hook': 'inceleme-daraltılmış') içindeki div'ler için
}):
long_review = divs.text.strip()
product_json['uzun incelemeler'].append(uzun_inceleme)
# Kazınmış html dosyasını kaydetme
dosya olarak open('output_file.html', 'wb') ile:
dosya.write(html)
# Sıyırılan verileri json formatında kaydetme
open('product.json', 'w') ile outfile olarak:
json.dump(product_json, dış dosya, girinti=4)
print ('———-Verilerin çıkarılması tamamlandı. json dosyasını kontrol edin.———-')
[/kod]
Bu Web Kazıma Programı Ne Yapacak?
Peki, bir örnekle açıklayayım. Size Amazon'da incelemeleri ve URL'ler verilen programa beslendiğinde programın ne döndürdüğünü içeren bir ürün sayfası göstereceğim.
Bu Dell Dizüstü Bilgisayarı Amazon'dan alalım. Programı çalıştırdığınızda “Amazon Ürün URL'sini Girin-” yazacaktır.
Bunu yaptığında, yukarıda verilen URL'yi kopyalayıp yapıştırmanız yeterlidir. Bunu yaptığınızda, geçerli dizininizde product.json adı altında aşağıdaki JSON oluşturulacaktır. JSON'unuzla eşleştirmek için bağlantı oluşturulur.
[kod dili=”python”]
{
"marka": "Acer",
“name”: “2018 En Yeni Acer 14 inç HD Chromebook LED Parlama Önleyici Ekran, Intel Çift Çekirdekli Celeron 3855u 1.6GHz işlemci, 4GB RAM, 16GB SSD, HDMI, USB 3.0, Web kamerası, 802.11a Wifi, Bluetooth, Google Chrome İŞLETİM SİSTEMİ",
"fiyat": "229.00$",
“img-url”: “https://images-na.ssl-images-amazon.com/images/I/41nlp137qeL._SX300_QL70_.jpg”,
“yıldız derecelendirmesi”: “5 üzerinden 4,2”,
"müşteri incelemesi sayısı": "79 müşteri incelemesi",
"detaylar": [
Acer ComfyView Teknolojisine sahip “14” Parlama Önleyici HD WLED Arkadan Aydınlatmalı (1366×768) Ekran, Dahili medya okuyucu”,
“Intel çift çekirdekli Skylake Celeron 3855U 1.60 GHz işlemci 2M Önbellek, Intel HD Graphics 510, Mikrofonlu Dahili HD web kamerası”,
“4GB LPDDR3 Bellek, 16 GB eMMC Flash Bellek, Dahili bulut desteği – nereye giderseniz gidin güvenli erişim için dosyalarınızı Google Drive hesabınıza kolayca kaydedin”,
“Yüksek Hızlı 802.11a WiFi, Bluetooth, HDMI, 2x USB 3.0, 1x USB 3.1 Tip-C, 1 x Kulaklık/Mikrofon Kombo Jakı”,
“Google Chrome OS, 10 saate kadar Pil ömrü, Renk: Siyah”
],
"kısa incelemeler": [
"Web'de gezinmek ve her türden Videoyu İzlemek için en iyi ve daha güvenli bilgisayar.",
“… bunu sadece birkaç günlüğüne yaşadım ama seviyorum. Bir macbook'tan buna geçtim…”,
“Okul çalışmaları için harika….ve Netflix”,
“Bu, 2018 Yeni Acer DEĞİL – üretim tarihi 08/2016”,
“MUHTEŞEM ÜRÜN… KULLANIMI BASİT”,
“Bu dizüstü bilgisayarı seviyorum”,
“… bu en büyük ekran – Annem buna bayılıyor gibi görünüyor.”,
"kullanımı kolay"
],
"uzun incelemeler": [
"Zaten 11.5" Acer Chromebook'um var, birkaç yıl önce satın aldım ve bu ilkinin başarısına dayanarak, devam edip daha büyük boyutta bir tane daha almaya karar verdim. İki Acer Chromebook'umu SEVİYORUM, SEVİYORUM. Geçmişte normal Microsoft Windows türü bir bilgisayar satın alma hatasını yaptım ve birkaçının hala evde var, ancak Acer Chromebook'u keşfettikten sonra, söylemeliyim ki, Chromebook'un Windows'a göre üstünlüğünü daha önce bilseydim. , Microsoft ürünü….Burada bir Acer Chromebook'a karşı Microsoft Windows türü bir bilgisayar savaşı açmak istemiyorum….Sadece söylüyorum… Microsoft Windows ürününüzden memnunsanız, satın alma işleminizi eleştirmiyorum, ben neyim "DİĞERLERİ" yerine Acer Chromebook'un sadeliğini seviyorum….Microsoft Windows türündeki bir bilgisayarın Chromebook'un yapamayacağı diğer şeyleri yapabileceğinin tamamen farkındayım, ancak siz sadece internette gezinmek ve çok fazla web medyası tüketmek, Facebook veya Yahoo Mail, YouTube, Netflix…. Güvenilirlik ve hız açısından Acer Chromebook'u hiçbir şey yenemez. Acer Chromebook ışık hızında açılır ve endişelenecek herhangi bir virüs yoktur. Ayrıca, Microsoft Windows'un sürekli yaptığı gibi sistemi güncellerken yavaşlamıyor….Evet, 15.6 inç ekranda gerçekten küçük bir mücevher ve fiyatı çok iyi….Teşekkürler Amazon. Ve Teşekkürler ACER.”,
“Bunu sadece birkaç gündür yaşıyorum ama onu seviyorum. Bir macbook'tan buna geçtim ve hayal kırıklığına uğramayı bekledim. Bu dizüstü bilgisayarla herhangi bir ayar veya herhangi bir şey yapmak zorunda değildim. Gmail'ime giriş yaptım ve her şey mükemmeldi. Şimdiye kadar hiçbir şikayetim yok. Ne kadar ucuz olduğuna inanamıyorum.”,
“Bir aydan fazla bir süredir elimdeydi. Geniş ekranlı, hızlı, kullanımı kolay bir makinedir. Kızımın ödevlerinde kullanması için aldım. Okulumuz, birçoğu gibi, çevrimiçi yapılan işlerin çoğu için Google Dokümanlar'ı kullanıyor. Tek ihtiyaçları olan bir chromebook - Microsoft'a gerek yok! Elbette kızım ödev bittiğinde Netflix izlemek için büyük ekranı seviyor!”,
“Başlığında belirtildiği gibi 2018 Chromebook DEĞİLDİR. 2017'nin sonlarında veya 2018'de üretilmiş bir Chromebook bekliyordum. Bu özel Chromebook, Ağustos 2016'da üretilmişti. Çok yanıltıcı başlık…… kesinlikle “2018 En Yenisi” değil. Yine de Chromebook oldukça iyi görünüyor.",
“Windows 10 hatalı güncellemelerinden bıktım ve güvenilir bir bilgisayara ihtiyacım vardı. Acer bana birkaç arkadaşım tarafından önerildi. Geçen hafta aldım ve beğendim. Kurulumu ve anlaşılması kolay, sabit sürücüden ısınma yok, hızlı, daha az güçlük, iyi kalite, vs. Windows 10'lu Dell'im hâlâ elimde ama şimdilik bu Acer Chromebook benim ilk tercihim. Daha az tuşlu ve daha yakın aralıklı bir klavyeye alışmak biraz zaman alıyor, ancak bu Chromebook hakkında başka hiçbir endişem yok. Her gün Chromebook hakkında daha fazla şey öğreniyorum ve basitliğini ve ek güvenlik gerektirmemesini takdir ediyorum. Mükemmel değer ve performans. Acer'ın fiyatından ve özelliklerinden memnun kaldım. Gerekirse adaptörle Ethernet'e kolay bağlantı.”,
“Bu dizüstü bilgisayarı seviyorum! Macbook'lara alışmışken, yakın zamanda sevgilim öldü. Başka bir macbook için piyasada değildim (isteğe bağlı değil) ve hızlı bir şekilde yeni bir dizüstü bilgisayara ihtiyacım vardı. Biraz hızlı araştırma yaptım ve bu dizüstü bilgisayarda iyi yorumlar gördüm. Amazon prime üzerinden sipariş verdim ve 3 gün içinde elime ulaştı. Etkilendim! Chomebook hayatımı son derece kolaylaştırdı. Her şey bağlı! Klavyeyle ilgili bir şey yazmayı kolaylaştırıyor. BAYILDIM!",
"Biraz ağır ama en büyük ekran - Annem buna bayılıyor gibi görünüyor… artık masaüstü ekran dağınıklığı yok… Teşekkürler",
“Yaşlı bir akraba için satın alındı. kullanımı kolay!"
]
}
[/kod]

Aynı çalışma dizininde sıyırdığımız html sayfasını output_file.html adı altında kaydettiğimizi de göreceksiniz. İşte bu belirli ürün sayfası için kazınmış html belgesinin nasıl olduğunu kontrol etmek için bağlantı. BeautifulSoup'u kullanarak Amazon ürün verilerini bu html'den sıyırmayı deneyebilirsiniz.
Amazon Ürün İncelemeleri ve Fiyatlandırma Verilerini Alırken Unutulmaması Gerekenler
1. Bu ürün kazıyıcıyı kullanırken bir Amazon ürün sayfasından aşağıdakileri alacaksınız.
- a. Marka
- b. İsim
- c. Fiyat
- d. Resim URL'si
- e. Yıldız derecelendirmesi
- f. Müşteri incelemelerinin sayısı
- e. Önemli ayrıntılar
- f. Kısa incelemeler
- g. Uzun incelemeler
Her veri noktası JSON'da bulunacaktır (bir ürün için mevcut değilse veya kazıyıcı onu bulamıyorsa bir veya iki nokta eksik olabilir). Her veri noktası ayrıca ilgili etiketiyle birlikte gelir.
2. Her ürün sayfası URL'sinin bu kodla sorunsuz bir şekilde işleneceğini garanti edemeyiz. Bunun nedeni, Amazon'un kodunu düzenli olarak değiştirmeye devam etmesi ve ayrıca tüm öğelerin veya tüm alt kategorilerin aynı HTML CSS biçimlendirmesine sahip olmamasıdır.
3. Bu programı kısa bir süre içinde birden çok kez çalıştırırsanız, bu hatayla karşılaşabilirsiniz, HTTP hatası 503. Bu bir sunucu tarafı hatasıdır. Ancak bu durumda bunun anlamı, Amazon'un veri tarama girişimlerinizi engellemesidir. Bu nedenle, profesyonel kullanım için Amazon'u kazıdığınızda, PromptCloud gibi web kazıma hizmetlerinden yardım almanız her zaman önerilir. Web kazıma hizmetleri sizin için ihtiyacınız olan tüm verileri otomatik olarak tarayacak bir sistem kurabilir, böylece veriler hakkında endişelenmeden işinize odaklanabilirsiniz.
4. Program yalnızca www.amazon.com için geçerlidir ve herhangi bir ülkeye özgü web sitesinde test edilmemiştir.
Neredeyse her gün mağaza kuran yeni e-ticaret sitelerimiz var. Bu tür zorlu rekabet arasında, rekabet anlayışının yokluğunda, geçim ve ticari karlar zorlaşıyor. Amazon ürün verileri sizin için referans ve başlangıç noktası olabilir. Web kazıma Amazon, doğru iş stratejisini ve ürün kategorisini oluşturmanıza ve ölçeklendirmenize yardımcı olacak ürün içgörülerini sağlayabilir.
Web Verilerini Çıkarmada Yardıma mı ihtiyacınız var?
Web kazıma hizmetlerimiz aracılığıyla iş uygulamaları için web sitelerinden temiz ve kullanıma hazır veriler alın. Bize Ulaşın.
Sorumluluk Reddi: Bu eğitimde sağlanan kod yalnızca öğrenme amaçlıdır. Nasıl kullanıldığından sorumlu değiliz ve kaynak kodunun herhangi bir zararlı kullanımı için hiçbir sorumluluk kabul etmiyoruz.
