داكن proxyscrape شعار

Web Scraping for Price Comparison in 2024– Easy Steps

بايثون ، كشط ، 03-يناير-20235 دقائق للقراءة

تجريف الويب هو فن استخراج البيانات من الإنترنت. عندما يتعلق الأمر بتطبيقاتها ، فإن لديها كمية هائلة من التطبيقات. واحد منهم هو مقارنة الأسعار من مواقع مختلفة. أصبح التسوق عبر الإنترنت هو الازدهار في الصناعة الآن ، وأصبحت مقارنة أسعار بعض المنتجات ضرورة. نزور جميعا مواقع ويب متعددة عندما نحتاج إلى شراء منتج معين ولكن هل فكرت يوما في إنشاء أداة مقارنة الأسعار تقوم بنفس المهمة نيابة عنك وتضع أفضل صفقة أمامك؟  

في هذه المقالة ، سنقوم بعمل أداة تجريف ويب مذهلة لمقارنة الأسعار في Python والتي ستتيح لك تتبع سعر المنتجات عبر مصادر مختلفة وإبلاغك بأداء المنافسين المختلفين في السوق. علاوة على ذلك ، سيبلغ أيضا الشركة بما إذا كان سعر منتج معين يرتفع أو ينخفض عن السعر المتوقع.

سيكون مصدر البيانات الذي سنستخدمه لهذه المقالة هو ملف JSON ، وسنقارن أسعار المنتجات التي نحصل عليها من Amazon و eBay و Walmart. تبدو بيانات العينة الخاصة بنا كما يلي ،

لا تتردد في الانتقال إلى أي أقسام لمعرفة المزيد حول تجريف الويب لمقارنة الأسعار في Python!

جدول المحتويات

الخطوات المتبعة في تجريف الويب لمقارنة الأسعار:

[
  {
    "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"
  }
]

بعض المجالات المهمة ذات الصلة بالسيناريو الذي هي amazon_price و ebay_price و walmart_price.

الآن رأينا بياناتنا. لذلك دعونا ندخل في مرحلة التطوير.

سنصنع الأداة في Python 3.x ، وقبل كل شيء ، سنستخدم مكتبة JSON لتحليل JSON والمزيد من المعالجة. توفر الأداة وظائف مذهلة عن طريق طباعة اسم المنتج وسعر الموقع. نحن نستورد مكتبة JSON لتحليل JSON.

استيراد JSON

الآن سنتصل بوظيفة open() في مقتطف الشفرة لقراءة المحتوى من ملف JSON ،

استيراد JSON
 
إذا __name__ == '__main__':
    price_data = لا شيء
    السعر = []
    مع فتح ('data.json' ، الترميز = 'utf8') ك f:
        price_data = f.read()
 
إذا  لم يكن price_data لا شيء:
       json_price_data = json.loads(price_data)

الآن تتم قراءة بيانات JSON الخاصة بنا ، وسنقوم بتحويلها إلى هياكل البيانات المضمنة في Python والتي ستسميها الشفرة طريقة json.loads() لتحويل سلسلة JSON إلى قاموس أو قائمة قواميس ، اعتمادا على الإدخالات.

نظرا لأن الهدف الرئيسي هو العثور على المتجر الذي يبيع المنتج بأقل سعر ، فإن هدفنا هو العثور على الحد الأدنى للسعر والتفاصيل الأخرى ذات الصلة مثل المنتج واسم المتجر. يتم تخزين معلومات الأسعار الخاصة بالمتجر ذي الصلة في مفاتيح amazon_price ebay_price و Walmart_price. للعثور على الحد الأدنى لكل منتج ، نحتاج إلى تكرار عناصر قائمة الأسعار.

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 = []

نحن نستخدم lambdas ونقوم بتعيين مفتاح min() للتأكد من مقارنة حقل السعر. وتنتج المخرجات التالية:

دعونا نعيد هيكلة التنسيق قليلا.

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 = []

سيعطي الناتج التالي:

مبروك! لقد نجحنا في عمل البرنامج النصي الذي يمكنك تشغيله بشكل دوري للحصول على الأسعار المحدثة للمنتج.

ما هو أفضل وكيل لتجريف الويب لمقارنة الأسعار باستخدام Python؟

ProxyScrape هو واحد من مزودي البروكسي الأكثر شعبية وموثوقية على الإنترنت. تتضمن ثلاث خدمات بروكسي خوادم بروكسي مخصصة لمركز البيانات وخوادم بروكسي سكنية وخوادم بروكسي متميزة. إذن ، ما هو أفضل حل ممكن لأفضل وكيل HTTP لتجريف الويب لمقارنة الأسعار باستخدام python؟ قبل الإجابة على هذه الأسئلة ، من الأفضل رؤية ميزات كل خادم وكيل.

يعد وكيل مركز البيانات المخصص هو الأنسب للمهام عالية السرعة عبر الإنترنت ، مثل دفق كميات كبيرة من البيانات (من حيث الحجم) من خوادم مختلفة لأغراض التحليل. إنه أحد الأسباب الرئيسية التي تجعل المؤسسات تختار وكلاء مخصصين لنقل كميات كبيرة من البيانات في فترة زمنية قصيرة.

يحتوي وكيل مركز البيانات المخصص على العديد من الميزات ، مثل النطاق الترددي غير المحدود والاتصالات المتزامنة ، وبروكسيات HTTP المخصصة لسهولة الاتصال ، ومصادقة IP لمزيد من الأمان. مع وقت تشغيل بنسبة 99.9٪ ، يمكنك أن تطمئن إلى أن مركز البيانات المخصص سيعمل دائما خلال أي جلسة. أخيرا وليس آخرا ProxyScrape يوفر خدمة عملاء ممتازة وسيساعدك على حل مشكلتك في غضون 24-48 ساعة عمل. 

التالي هو وكيل سكني. السكنية هي وكيل الانتقال لكل مستهلك عام. السبب الرئيسي هو أن عنوان IP الخاص بالوكيل السكني يشبه عنوان IP الذي يوفره مزود خدمة الإنترنت. هذا يعني أن الحصول على إذن من الخادم الهدف للوصول إلى بياناته سيكون أسهل من المعتاد. 

الميزة الأخرى ل ProxyScrapeالوكيل السكني هو ميزة دوارة. يساعدك الوكيل الدوار على تجنب الحظر الدائم على حسابك لأن الوكيل السكني الخاص بك يغير عنوان IP الخاص بك ديناميكيا ، مما يجعل من الصعب على الخادم الهدف التحقق مما إذا كنت تستخدم وكيلا أم لا. 

بصرف النظر عن ذلك ، فإن الميزات الأخرى للوكيل السكني هي: عرض النطاق الترددي غير المحدود ، إلى جانب الاتصال المتزامن ، وبروكسيات HTTP / s المخصصة ، والوكلاء في أي جلسة زمنية بسبب 7 ملايين بالإضافة إلى الوكلاء في تجمع الوكيل ، ومصادقة اسم المستخدم وكلمة المرور لمزيد من الأمان ، وأخيرا وليس آخرا ، القدرة على تغيير خادم البلد. يمكنك تحديد الخادم الذي تريده عن طريق إلحاق رمز البلد بمصادقة اسم المستخدم. 

آخر واحد هو الوكيل المتميز. الوكلاء المتميزون هم نفس وكلاء مراكز البيانات المخصصين. تظل الوظيفة كما هي. الفرق الرئيسي هو إمكانية الوصول. في الوكلاء المميزين ، يتم توفير قائمة الوكيل (القائمة التي تحتوي على بروكسي) لكل مستخدم على ProxyScrapeشبكة. هذا هو السبب في أن الوكلاء المتميزين يكلفون أقل من وكلاء مراكز البيانات المخصصة.

إذن ، ما هو أفضل حل ممكن لأفضل وكيل HTTP لتجريف الويب لمقارنة الأسعار باستخدام python؟ الجواب سيكون "وكيل سكني". السبب بسيط. كما ذكر أعلاه ، فإن الوكيل السكني هو وكيل دوار ، مما يعني أنه سيتم تغيير عنوان IP الخاص بك ديناميكيا على مدار فترة زمنية يمكن أن يكون مفيدا لخداع الخادم عن طريق إرسال الكثير من الطلبات في إطار زمني صغير دون الحصول على كتلة IP. 

بعد ذلك ، سيكون أفضل شيء هو تغيير الخادم الوكيل بناء على البلد. عليك فقط إلحاق البلد ISO_CODE في نهاية مصادقة IP أو مصادقة اسم المستخدم وكلمة المرور. 

قراءات مقترحة:

  1. كشط تعليقات يوتيوب - 5 خطوات بسيطة
  2. أفضل 8 أدوات تجريف ويب Python في عام 2023
  3. تجريف الويب للمقالات الإخبارية باستخدام Python - أفضل طريقة في عام 2023

التعليمات:

1. ما هو تجريف الأسعار؟
كشط الأسعار ، كما يوحي الاسم ، هو عملية استخراج سعر منتج أو خدمة عبر الإنترنت لإجراء أي تحليل ، مثل تحليل المنافسين ، لتحسين استراتيجية التسويق. يمكن أن تساعدك أتمتة عملية الكشط على تقليل الوقت والموارد ، ويمكنك القيام بذلك بمساعدة Python.
2. ما هو أفضل وكيل لتجريف الويب لمقارنة الأسعار؟
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. هل تجريف الويب لمقارنة الأسعار قانوني؟
الجواب نعم. يمكنك كشط السعر من موقع التجارة الإلكترونية نظرا لأن جميع المعلومات متاحة للجمهور ، مما يعني أنه يمكن كشط جميع البيانات العامة.

استنتاج

استكشفت هذه المقالة عجيبة أخرى من تجريف الويب ، أي "مقارنة الأسعار". ليس هذا فقط ، لقد قمنا ببناء أداة يمكنها القيام بمهمة مقارنة الأسعار نيابة عنك وإبقائك على اطلاع دائم باتجاهات السوق. تأمل هذه المقالة في تقديم معلومات كافية حول تجريف الويب لمقارنة الأسعار بطريقة سهلة. الخادم الوكيل هو أفضل رفيق لتجريف الويب. ProxyScrape يوفر أفضل وكيل سكني في فئته لتجريف الويب الخاص بك لمشاريع مقارنة الأسعار. يمكنك التحقق من أفضل وكيل سكني هنا.