karanlık proxyscrape logo

Web Scraping for Price Comparison in 2024– Easy Steps

Python, Kazıma, Ocak-03-20235 dakika okuma

Web kazıma, internetten veri çıkarma sanatıdır. Uygulamaları söz konusu olduğunda, çok sayıda uygulamaya sahiptir. Bunlardan biri de farklı web sitelerinden fiyat karşılaştırmasıdır. Çevrimiçi alışveriş artık sektörde bir patlama haline geldi ve belirli ürünlerin fiyatlarını karşılaştırmak bir zorunluluk haline geldi. Belirli bir ürünü satın almamız gerektiğinde hepimiz birden fazla web sitesini ziyaret ediyoruz, ancak aynı işi sizin için yapan ve en iyi teklifi önünüze koyan bir fiyat karşılaştırma aracı yapmayı hiç düşündünüz mü?  

Bu makalede, Python'da fiyat karşılaştırma aracı için farklı kaynaklardaki ürünlerin fiyatını izlemenize ve pazardaki farklı rakiplerin performansı hakkında sizi bilgilendirmenize olanak tanıyan harika bir web kazıma yapacağız. Ayrıca, belirli bir ürünün fiyatının öngörülen fiyattan yukarı veya aşağı gidip gitmediği konusunda da işletmeyi bilgilendirecektir.

Bu makale için kullanacağımız veri kaynağı bir JSON dosyası olacak ve Amazon, eBay ve Walmart'tan aldığımız ürün fiyatlarını karşılaştıracağız. Örnek verilerimiz aşağıdaki gibi görünüyor,

Python'da fiyat karşılaştırması için web kazıma hakkında daha fazla bilgi edinmek için herhangi bir bölüme atlamaktan çekinmeyin!

İçindekiler

Fiyat Karşılaştırması için Web Kazıma İşleminde Kullanılan Adımlar:

[
  {
    "last_visited": "2018-01-30T13:38:01",
    "name": "PUMA Men's Evospeed 17.4 TT Soccer Shoe",
    "amazon_price": 36.94,
    "ebay_price": 37,
    "walmart_price": 37,
    "amazon_url": "https://www.amazon.com/PUMA-Evospeed-Soccer-Ultra-Yellow-Peacoat-Orange/dp/B01J5LEMZI/",
    "ebay_url": "https://www.ebay.com/itm/PUMA-Mens-Evospeed-17-4-Tt-Soccer-Shoe/302471489090",
    "walmart_url": "https://www.walmart.com/ip/PUMA-Men-s-Evospeed-17-4-Tt-Soccer-Shoe/587074448",
    "description": "The new evospeed 17.4 is a performance football boot for players of all levels. The soft and lightweight synthetic leather on the upper keeps the boot lightweight, comfortable and ensures durability. The lightweight outsole offers the perfect balance between traction, stability and acceleration PUMA is the global athletic brand that successfully fuses influences from sport, lifestyle and fashion. PUMA's unique industry perspective delivers the unexpected in sport-lifestyle footwear, apparel and accessories, through technical innovation and revolutionary design.",
    "brand": "PUMA",
    "image": "https://images-na.ssl-images-amazon.com/images/I/61v1mylcAqL._UL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:07",
    "name": "L'Oreal Paris Skin Care Revitalift Cicacream Face Moisturizer",
    "amazon_price": 13.97,
    "ebay_price": 13.99,
    "walmart_price": 13.97,
    "amazon_url": "https://www.amazon.com/LOreal-Paris-Revitalift-Cicacream-Moisturizer/dp/B074MBDRHW",
    "ebay_url": "https://www.ebay.com/itm/LOREAL-Paris-NEW-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair-ORIGINAL/112715734801",
    "walmart_url": "https://www.walmart.com/ip/L-Or-al-Paris-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair/519350834",
    "description": "Skin's moisture barrier weakens with age, resulting in greater moisture loss, more prominent wrinkles and loss of firmness. Lightweight, protective cream is formulated with Pro-Retinol, a powerful wrinkle-fighting ingredient and Centella Asiatica, an herb used in traditional Chinese medicine. Strengthens and repairs skin barrier to help resist visible lines, loss of firmness and other signs of aging that a weakened skin barrier can accentuate. See visible results immediately: skin feels healthier, softer, smoother and more supple. Skin feels noticeably more hydrated. Skin barrier is stronger, helping to resist signs of aging. In two weeks: fine lines appear visibly reduced. Firmness and elasticity look noticeably improved. In four weeks: wrinkles appear less visible. Clarity and tone improves, skin exudes luminosity. Skin continues to look and feel soft, smooth, healthy.",
    "brand": "L'Oreal Paris",
    "image": "https://images-na.ssl-images-amazon.com/images/I/71Ff2vn4vjL._SL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:12",
    "name": "Adidas Dynamic Pulse By Adidas For Men",
    "amazon_price": 6.96,
    "ebay_price": 18.99,
    "walmart_price": 7,
    "amazon_url": "https://www.amazon.com/Adidas-Dynamic-Toilette-3-4-Ounce-Bottle/dp/B000VON5F2/",
    "ebay_url": "https://www.ebay.com/itm/Adidas-DYNAMIC-PULSE-Cologne-for-Men-3-4-oz-edt-3-3-Spray-New-in-BOX/252837623533",
    "walmart_url": "https://www.walmart.com/ip/Adidas-Dynamic-Pulse-for-Men-3-4-oz-EDT/28664356",
    "description": "Launched by the design house of Adidas in 1997, ADIDAS DYNAMIC PULSE is a men's fragrance that possesses a blend of A fresh scent of citrus, cedar and mint with low tones of sweet fruits, fragrant woods and tonka bean. It is recommended for daytime wear.When applying any fragrance please consider that there are several factors which can affect the natural smell of your skin and, in turn, the way a scent smells on you. For instance, your mood, stress level, age, body chemistry, diet, and current medications may all alter the scents you wear. Similarly, factor such as dry or oily skin can even affect the amount of time a fragrance will last after being applied",
    "brand": "adidas",
    "image": "https://images-na.ssl-images-amazon.com/images/I/41%2BAnOP5nbL.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:19",
    "name": "Canon EOS Rebel T6 Digital SLR Camera",
    "amazon_price": 449,
    "ebay_price": 449,
    "walmart_price": 449,
    "amazon_url": "https://www.amazon.com/Canon-Digital-Camera-18-55mm-3-5-5-6/dp/B01CO2JPYS",
    "ebay_url": "https://www.ebay.com/itm/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens/232596041502",
    "walmart_url": "https://www.walmart.com/ip/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens-Black/50820749",
    "description": "",
    "brand": "Canon",
    "image": "https://images-na.ssl-images-amazon.com/images/I/81YszfZS8%2BL._SL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:25",
    "name": "Woodland Fox Critter 36' Mylar Balloon",
    "amazon_price": 5.49,
    "ebay_price": 6.49,
    "walmart_price": 7.6,
    "amazon_url": "https://www.amazon.com/Woodland-Fox-Critter-Mylar-Balloon/dp/B00S9TKVYO",
    "ebay_url": "https://www.ebay.com/itm/Woodland-Critters-Fox-36-inch-Foil-Balloon/132058119680",
    "walmart_url": "https://www.walmart.com/ip/Woodland-Fox-Foil-Balloon/43350002",
    "description": "Celebrate any occasion with an adorable woodland fox critter balloon! 36\" Woodland Critters fox shape foil balloon.",
    "brand": "Betallic",
    "image": "https://images-na.ssl-images-amazon.com/images/I/71Z9bG-BzuL._SL1500_.jpg"
  }
]
Yazdığımız komut dosyasıyla ilgili önemli alanlardan bazıları amazon_price, ebay_price ve walmart_price'dır.

Şimdi verilerimizi gördük. Şimdi geliştirme aşamasına geçelim.

Aracı Python 3.x'te yapacağız ve her şeyden önce, JSON 'u ayrıştırmak ve daha fazla işlem yapmak için JSON kütüphanesini kullanacağız. Araç, sitenin ürün adını ve fiyatını yazdırarak şaşırtıcı işlevsellik sağlar. JSON'u ayrıştırmak için JSON kütüphanesini içe aktarıyoruz.
import json

Şimdi JSON dosyasındaki içeriği okumak için kod parçacığındaki open() fonksiyonunu çağıracağız,

import json
 
if __name__ == '__main__':
    price_data = None
    fiyat = []
   with open('data.json', encoding='utf8') as f:
        price_data = f.read()
 
    fiyat_verisi None değilse:
       json_price_data = json.loads(price_data)

Şimdi JSON verimiz okundu, onu Python'un yerleşik veri yapılarına dönüştüreceğiz, bunun için kod JSON dizesini girişlere bağlı olarak bir sözlüğe veya bir sözlük listesine dönüştürmek için json.loads() yöntemini çağıracaktır.

Ana amaç ürünü en düşük fiyata satan mağazayı bulmak olduğundan, hedefimiz minimum fiyatı ve ürün ve mağaza adı gibi diğer ilgili ayrıntıları bulmaktır. İlgili mağazanın fiyat bilgisi amazon_price, ebay_price ve Walmart_price anahtarlarında saklanır. Her ürünün minimum fiyatını bulmak için fiyat listesi öğelerini yinelememiz gerekir.
for d in json_price_data:
            price.append({'name': d['name'], 'price': float(d['amazon_price']), 'url': d['amazon_url']})
            price.append({'name': d['name'], 'price': float(d['walmart_price']), 'url': d['walmart_url']})
            price.append({'name': d['name'], 'price': float(d['ebay_price']), 'url': d['ebay_url']})
            minPricedItem = min(price, key=lambda x: x['price'])
            print(minPricedItem)
            print('=================')
            price = []

Lambda'ları kullanıyoruz ve fiyat alanının karşılaştırıldığından emin olmak için min() anahtarını ayarlıyoruz. Aşağıdaki çıktıyı üretir:

Formatı biraz yeniden düzenleyelim.

for d in json_price_data:
            price.append({'name': d['name'], 'price': d['amazon_price'], 'url': d['amazon_url']})
            price.append({'name': d['name'], 'price': d['walmart_price'], 'url': d['walmart_url']})
            price.append({'name': d['name'], 'price': d['ebay_price'], 'url': d['ebay_url']})
            minPricedItem = min(price, key=lambda x: float(x['price']))
            store_name = ''
            # Pick the store name based on url
            if 'amazon' in minPricedItem['url'].lower():
                store_name = 'Amazon'
            elif 'walmart' in minPricedItem['url'].lower():
                store_name = 'Amazon'
            elif 'ebay' in minPricedItem['url'].lower():
                store_name = 'eBay'
            print('{} is available in cheap price at {}. The price is ${}'.format(minPricedItem['name'], store_name,
                                                                                 minPricedItem['price']))
            price = []

Aşağıdaki çıktıyı verecektir:

Tebrikler! Ürünün güncellenmiş fiyatlarını almak için periyodik olarak çalıştırabileceğiniz scripti başarıyla yaptık.

Python Kullanarak Fiyat Karşılaştırması için Web Kazıma için En İyi Proxy Hangisidir?

ProxyScrape çevrimiçi en popüler ve güvenilir proxy sağlayıcılarından biridir. Üç proxy hizmeti arasında özel veri merkezi proxy sunucuları, konut proxy sunucuları ve premium proxy sunucuları bulunur. Peki, python kullanarak fiyat karşılaştırması için web kazıma için en iyi HTTP proxy için mümkün olan en iyi çözüm nedir? Bu soruyu yanıtlamadan önce, her bir proxy sunucusunun özelliklerini görmek en iyisidir.
Özel bir veri merkezi proxy'si analiz amacıyla çeşitli sunuculardan büyük miktarda veri (boyut açısından) akışı gibi yüksek hızlı çevrimiçi görevler için en uygunudur. Bu, kuruluşların kısa sürede büyük miktarda veri iletmek için özel proxy'leri seçmelerinin ana nedenlerinden biridir.

Özel bir veri merkezi proxy'si, sınırsız bant genişliği ve eşzamanlı bağlantılar, kolay iletişim için özel HTTP proxy'leri ve daha fazla güvenlik için IP kimlik doğrulaması gibi çeşitli özelliklere sahiptir. 99,9 çalışma süresi ile, özel veri merkezinin herhangi bir oturum sırasında her zaman çalışacağından emin olabilirsiniz. Son olarak, ProxyScrape mükemmel müşteri hizmetleri sunar ve sorununuzu 24-48 iş saati içinde çözmenize yardımcı olur. 

Sırada bir konut proxy'si. Konut, her genel tüketici için gidilecek bir proxy'dir. Bunun ana nedeni, bir konut proxy'sinin IP adresinin ISP tarafından sağlanan IP adresine benzemesidir. Bu, hedef sunucudan verilerine erişmek için izin almanın normalden daha kolay olacağı anlamına gelir. 

ProxyScrape'un konut proxy'sinin diğer bir özelliği de dönen bir özelliktir. Dönen proxy, hesabınızın kalıcı olarak yasaklanmasını önlemenize yardımcı olur çünkü konut proxy'niz IP adresinizi dinamik olarak değiştirerek hedef sunucunun proxy kullanıp kullanmadığınızı kontrol etmesini zorlaştırır. 

Bunun dışında, bir konut proxy'sinin diğer özellikleri şunlardır: eşzamanlı bağlantıyla birlikte sınırsız bant genişliği, özel HTTP / s proxy'leri, proxy havuzundaki 7 milyondan fazla proxy nedeniyle herhangi bir zaman oturumunda proxy'ler, daha fazla güvenlik için kullanıcı adı ve şifre kimlik doğrulaması ve son olarak, ülke sunucusunu değiştirme yeteneği. Ülke kodunu kullanıcı adı kimlik doğrulamasına ekleyerek istediğiniz sunucuyu seçebilirsiniz. 

Sonuncusu ise premium proxy. Premium proxy'ler özel veri merkezi proxy'leri ile aynıdır. İşlevsellik aynı kalır. Temel fark erişilebilirliktir. Premium proxy'lerde, proxy listesi (proxy'leri içeren liste) ProxyScrapeağındaki her kullanıcı için kullanılabilir hale getirilir. Bu nedenle premium proxy'ler özel veri merkezi proxy'lerinden daha ucuzdur.
Peki, python kullanarak fiyat karşılaştırması için web kazıma için en iyi HTTP proxy için mümkün olan en iyi çözüm nedir? Cevap "konut vekili." Nedeni basittir. Yukarıda belirtildiği gibi, konut proxy'si dönen bir proxy'dir, yani IP adresiniz belirli bir süre boyunca dinamik olarak değiştirilir ve bu da IP bloğu almadan küçük bir zaman dilimi içinde çok sayıda istek göndererek sunucuyu kandırmaya yardımcı olabilir. 

Daha sonra, en iyi şey proxy sunucusunu ülkeye göre değiştirmek olacaktır. IP kimlik doğrulamasının veya kullanıcı adı ve parola kimlik doğrulamasının sonuna ülke ISO_CODE'unu eklemeniz yeterlidir. 

Önerilen Okumalar:

SSS:

1. Fiyat kazıma nedir?
Fiyat kazıma, adından da anlaşılacağı gibi, pazarlama stratejisini geliştirmek için rakip analizi gibi herhangi bir analiz yapmak üzere bir ürünün veya hizmetin fiyatını çevrimiçi olarak çıkarma işlemidir. Kazıma işlemini otomatikleştirmek, zamanı ve kaynakları azaltmanıza yardımcı olabilir ve bunu python yardımıyla yapabilirsiniz.
2. Fiyat karşılaştırması için web kazıma için en iyi proxy nedir?
The best proxy to perform web scraping for price comparison is a “residential proxy.” The reason is that the residential proxy is a rotating proxy, meaning that your IP address would be dynamically changed over a period of time which can be helpful to trick the server by sending a lot of requests within a small time frame without getting an IP block.
3. Fiyat karşılaştırması için web kazıma yasal mı?
Cevap evet. Tüm bilgiler kamuya açık olduğundan, bir e-ticaret web sitesinden fiyatı kazıyabilirsiniz, yani tüm kamuya açık veriler kazınabilir.

Sonuç

Bu makale web kazımanın bir başka harikasını, yani "Fiyat Karşılaştırma "yı keşfetti. Sadece bu da değil, fiyat karşılaştırma işini sizin için yapabilecek ve sizi piyasa trendlerinden haberdar edebilecek bir araç geliştirdik. Bu makale, fiyat karşılaştırması için web kazıma hakkında kolay bir şekilde yeterli bilgi vermeyi umuyor. Bir proxy sunucusu, web kazıma için en iyi arkadaştır. ProxyScrape , fiyat karşılaştırma projeleri için web kazıma işleminiz için sınıfının en iyisi konut proxy 'sini sağlar. En iyi konut proxy'sini buradan kontrol edebilirsiniz.