العودة إلى المدونة

تحليل وول مارت: كيفية اختيار البروكسي وضبط جمع البيانات بدون حظر

تستخدم وول مارت حماية قوية من الروبوتات من بيريمتر إكس. نستعرض أنواع البروكسي التي تعمل لعمليات السحب، وكيفية إعداد التدوير وتجنب الحظر أثناء جمع الأسعار والمخزونات.

📅٥ شعبان ١٤٤٧ هـ
```html

Walmart هو ثاني أكبر متجر إلكتروني في الولايات المتحدة بعد Amazon، وبياناته حيوية للغاية لأعمال التجارة الإلكترونية: مراقبة أسعار المنافسين، تتبع المخزونات، تحليل التشكيلة. المشكلة هي أن Walmart يستخدم نظام حماية متقدم ضد الروبوتات PerimeterX، الذي يحظر 90% من الطلبات من المحللين بالفعل في الصفحة الأولى.

في هذا الدليل، سنحلل أنواع البروكسي التي تعمل فعليًا لتحليل Walmart، كيفية إعداد تدوير عناوين IP، تجاوز بصمة المتصفح وبناء نظام جمع بيانات مستقر لا يتعطل بعد ساعة من العمل.

لماذا يقوم Walmart بحظر المحللين: آليات حماية PerimeterX

يستخدم Walmart نظام حماية PerimeterX (الذي يُطلق عليه الآن HUMAN Security) - واحدة من أكثر أنظمة مكافحة الروبوتات عدوانية في السوق. يقوم بتحليل كل طلب بناءً على عشرات المعايير ويحظر حركة المرور المشبوهة قبل أن يحصل المحلل الخاص بك على كود HTML للصفحة.

الآليات الرئيسية لحماية Walmart:

1. تحليل سمعة IP

يقوم PerimeterX بالتحقق من كل عنوان IP من خلال قاعدة بيانات للبروكسيات المعروفة، مراكز البيانات وVPN. إذا كان عنوان IP الخاص بك في هذه القاعدة - ستحصل على حظر أو CAPTCHA. يقوم Walmart بتصفية عناوين IP من مزودي الخدمة السحابية الشائعة (AWS، Google Cloud، DigitalOcean) بشكل صارم.

2. التحليل السلوكي

يتتبع النظام كيفية تفاعل المستخدم مع الصفحة: حركات الماوس، سرعة التمرير، النقرات. غالبًا ما يتم كشف المحللين الذين يستخدمون Selenium أو Puppeteer هنا - حيث يفتحون الصفحات بسرعة كبيرة، دون فترات توقف طبيعية، ولا يحركون الماوس.

3. بصمة TLS وHTTP

يقوم PerimeterX بتحليل بصمة TLS للاتصال الخاص بك (ترتيب التشفيرات، الامتدادات) ورؤوس طلبات HTTP. تحتوي المكتبات القياسية في Python (requests، urllib) على بصمات فريدة يمكن التعرف عليها بسهولة. حتى إذا قمت بتغيير User-Agent، فإن النظام يرى عدم التوافق بين الرؤوس والمتصفح الحقيقي.

4. تحديات JavaScript

عند وجود طلب مشبوه، يقوم PerimeterX بإرسال كود JavaScript الذي يجري اختبارات في المتصفح: توفر Canvas API، WebGL، إعدادات الشاشة، الخطوط المثبتة. لا يمكن للمحللين البسيطين (بدون محرك متصفح) اجتياز هذه الاختبارات ويحصلون على حظر.

ماذا يحدث عند الحظر:

  • HTTP 403 Forbidden - أكثر الردود شيوعًا، يعني أن عنوان IP الخاص بك أو بصمتك في القائمة السوداء
  • إعادة توجيه إلى صفحة CAPTCHA - النظام غير متأكد، يمنح فرصة لإثبات أنك إنسان
  • صفحة فارغة أو JSON بخطأ - الخادم لا يقدم المحتوى على الإطلاق
  • حظر مؤقت لعنوان IP لمدة 15-60 دقيقة - عند التحليل العدواني من عنوان واحد

الاستنتاج الرئيسي: لتحليل Walmart بنجاح، تحتاج إلى استراتيجية شاملة، حيث يكون البروكسي مجرد عنصر واحد. ستحتاج أيضًا إلى محرك متصفح صحيح، تقليد سلوك الإنسان وتدوير عناوين IP بشكل صحيح.

أي بروكسي تعمل لتحليل Walmart: مقارنة الأنواع

ليست جميع البروكسيات فعالة بنفس القدر لتجاوز حماية Walmart. دعونا نحلل أربعة أنواع رئيسية وملاءمتها لمهمة التحليل.

نوع البروكسي الفعالية لـ Walmart السرعة التكلفة التوصية
بروكسي سكنية ⭐⭐⭐⭐⭐
ممتاز - عناوين IP لمستخدمين حقيقيين، الحد الأدنى من الحظر
متوسطة
(200-800 مللي ثانية)
مرتفعة
(من 7-15 دولار/جيجابايت)
مثالي للإنتاج
بروكسي موبايل ⭐⭐⭐⭐⭐
ممتاز - درجة ثقة عالية، حظر نادر
منخفضة
(500-1500 مللي ثانية)
مرتفعة جدًا
(من 50-100 دولار/شهر لكل IP)
لحالات معقدة
بروكسي مراكز البيانات ⭐⭐
سيء - احتمال حظر مرتفع (70-90%)
مرتفعة
(50-150 مللي ثانية)
منخفضة
(من 1-3 دولار/IP)
غير موصى بها
بروكسي ISP ⭐⭐⭐⭐
جيد - عناوين IP سكنية ثابتة
مرتفعة
(80-200 مللي ثانية)
متوسطة
(من 30-80 دولار/شهر لكل IP)
للمهام الطويلة الأجل

مزيد من التفاصيل عن كل نوع:

بروكسي سكنية - المعيار الذهبي لـ Walmart

هذه هي عناوين IP لمقدمي خدمات الإنترنت المنزليين الحقيقيين (Comcast، AT&T، Verizon في الولايات المتحدة). يرى Walmart هؤلاء كعملاء عاديين، لذلك فإن نسبة الحظر منخفضة - حوالي 5-10% مع الإعداد الصحيح. الميزة الرئيسية هي مجموعات العناوين الضخمة (ملايين IP)، مما يسمح بإعداد تدوير فعال.

متى تستخدم: مراقبة الأسعار على آلاف المنتجات، جمع البيانات اليومية، المشاريع الطويلة الأجل. لتحليل Walmart، البروكسي السكنية هي الخيار الأمثل من حيث الفعالية والتكلفة.

بروكسي موبايل - أقصى موثوقية

عناوين IP لمشغلي الهواتف المحمولة (T-Mobile، Verizon Wireless) لديها أعلى درجة ثقة في أنظمة مكافحة الروبوتات. السبب هو أن عنوان IP واحد يستخدمه آلاف المستخدمين الحقيقيين (عبر NAT الخاص بالمشغل)، لذا فإن حظره يعني حظر آلاف المشترين. نادرًا ما يقوم Walmart بحظر عناوين IP المحمولة.

متى تستخدم: إذا كانت البروكسي السكنية لا تكفي، إذا كنت بحاجة إلى تحليل أقسام محمية بشكل خاص (مثل الأسعار لمناطق معينة)، إذا كان الميزانية تسمح. البروكسي المحمولة تحقق تقريبًا 100% من الطلبات الناجحة، لكنها أغلى.

بروكسي مراكز البيانات - ليست لـ Walmart

عناوين IP للخوادم في مراكز البيانات (AWS، OVH، Hetzner) يتم التعرف عليها على الفور من قبل PerimeterX. حتى إذا اشتريت عناوين IP "نظيفة" لم تُستخدم من قبل للتحليل، فإن النظام لا يزال يرى أنها من مركز بيانات، وليس من مزود خدمة منزلي. نسبة الحظر - 70-90%.

السيناريو الوحيد للاستخدام: اختبار المحلل على حجم بيانات صغير (10-50 صفحة). لا تصلح للإنتاج بشكل قاطع.

بروكسي ISP (سكنية ثابتة) - هي هجين: عناوين IP لمقدمي خدمات الإنترنت المنزليين، ولكنها مستضافة في مراكز البيانات ومقدمة لك لفترة طويلة (شهر أو أكثر). هي أسرع من البروكسي السكنية العادية، لكنها أغلى ولديها مجموعة محدودة من العناوين. مناسبة إذا كنت بحاجة إلى عناوين IP مستقرة لتحليل فئات معينة من المنتجات على المدى الطويل.

بروكسي سكنية مقابل بروكسي مراكز البيانات: ماذا تختار لمهمتك

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

السيناريو 1: مراقبة 10,000 منتج يوميًا

مع البروكسي السكنية:

  • متوسط حجم صفحة منتج Walmart: ~500 كيلوبايت
  • 10,000 منتج × 500 كيلوبايت = 5 جيجابايت من الحركة يوميًا
  • الحركة الشهرية: 150 جيجابايت
  • التكلفة عند 10 دولارات/جيجابايت: 1,500 دولار/شهر
  • نسبة الطلبات الناجحة: 90-95%
  • التكلفة الفعلية مع الأخذ في الاعتبار التكرارات: ~$1,650/شهر

مع بروكسي مراكز البيانات (نظريًا):

  • تكلفة 100 IP: ~$200/شهر
  • نسبة الطلبات الناجحة: 10-30% (الباقي - حظر)
  • يحتاج إلى إجراء 3-10 محاولات لكل منتج
  • الحركة الفعلية: 15-50 جيجابايت (بسبب التكرارات)
  • النتيجة: المهمة غير قابلة للتنفيذ - يتم حظر IP بسرعة، CAPTCHA في كل خطوة

السيناريو 2: جمع البيانات لمرة واحدة عن 500 منتج

إذا كنت بحاجة إلى جمع البيانات مرة واحدة لتحليل السوق أو البحث، يمكنك تجربة نهج مركب:

  • استخدم بروكسي مراكز البيانات لجمع URL المنتجات الأولية (صفحات الفئات)
  • انتقل إلى البروكسي السكنية للحصول على معلومات تفصيلية عن المنتجات
  • التكلفة: ~$50-100 لمهمة لمرة واحدة
  • وقت التنفيذ: 2-4 ساعات بدلاً من 10-20 ساعة مع مراكز البيانات

العوامل الرئيسية للاختيار:

المعيار سكنية مراكز البيانات
حجم البيانات أي - من 100 إلى ملايين الصفحات فقط أحجام صغيرة (حتى 1000 صفحة)
التكرار تحليل يومي/أسبوعي فقط مهام لمرة واحدة
سرعة التنفيذ مستقرة - بدون تأخيرات بسبب التكرارات غير متوقعة - الكثير من التكرارات
موثوقية مرتفعة - 90-95% نجاح منخفضة - 10-30% نجاح
تكلفة الخطأ منخفضة - تدفع فقط مقابل الحركة الناجحة مرتفعة - تضيع الوقت والمال على الحظر

الاستنتاج: لمهام التحليل الجادة لـ Walmart، استخدم البروكسي السكنية أو المحمولة. يمكن اعتبار بروكسي مراكز البيانات فقط لاختبار منطق المحلل على 10-50 صفحة، ولكن ليس للإنتاج. سيوفر التوفير في البروكسي الوقت والأعصاب وفي النهاية سيكلف أكثر.

استراتيجيات تدوير IP: تكرار التغيير ومجموعات العناوين

حتى مع البروكسي السكنية، يمكنك الحصول على حظر إذا لم تقم بإعداد تدوير عناوين IP بشكل صحيح. يتتبع PerimeterX أنماط السلوك: إذا كان عنوان IP واحد يطلب 100 صفحة من المنتجات في دقيقة واحدة - فهذا بالتأكيد روبوت. الاستراتيجية الصحيحة للتدوير هي المفتاح لتحليل مستقر بدون حظر.

ثلاث استراتيجيات رئيسية للتدوير:

1. تدوير مع كل طلب (بروكسي متغيرة)

كل طلب HTTP يمر عبر عنوان IP جديد. هذه هي الوضعية القياسية لمعظم مزودي البروكسي السكنية.

الإيجابيات:

  • أقل خطر للحظر - كل IP يقوم بعمل 1-2 طلبات
  • إعداد بسيط - المزود يدير المجموعة بنفسه
  • يمكنك التحليل بشكل عدواني - مئات الطلبات في الدقيقة

السلبيات:

  • مشاكل مع الجلسات - إذا كان الموقع يستخدم الكوكيز، كل طلب = جلسة جديدة
  • أبطأ - يستغرق 200-500 مللي ثانية لإنشاء اتصال جديد

متى تستخدم: لتحليل صفحات منتجات Walmart، حيث لا تحتاج إلى تسجيل دخول وجلسات. هذه هي الاستراتيجية المثلى لمعظم مهام مراقبة الأسعار.

2. جلسات لاصقة (Sticky Sessions)

يتم استخدام عنوان IP واحد لسلسلة من الطلبات خلال فترة زمنية معينة (عادةً 5-30 دقيقة)، ثم يتم التغيير إلى IP جديد.

الإيجابيات:

  • الحفاظ على الجلسات والكوكيز - يمكنك العمل مع السلة، تسجيل الدخول
  • أسرع - يتم إعادة استخدام اتصال TCP
  • سلوك "أكثر طبيعية" لأنظمة مكافحة الروبوتات

السلبيات:

  • خطر الحظر أعلى - يقوم IP واحد بعمل 10-50 طلبات
  • يجب مراقبة الحدود - لا تزيد عن 30-50 طلبًا من IP واحد

متى تستخدم: إذا كنت بحاجة إلى تحليل بيانات تتطلب تسجيل دخول (مثل الأسعار للمستخدمين المسجلين)، أو إذا كنت تحاكي سلوك المشتري الحقيقي (عرض الفئة → المنتج → الإضافة إلى السلة).

3. مجموعة من IP الثابتة مع تدوير يدوي

تأخذ 50-100 IP سكنية ثابتة (بروكسي ISP) وتدير توزيع الطلبات بينها بنفسك.

الإيجابيات:

  • تحكم كامل - تعرف أي IP قام بعدد الطلبات
  • أقصى سرعة - IP الثابتة أسرع من المتغيرة
  • يمكنك "تسخين" IP - إجراء طلبات شرعية لزيادة السمعة

السلبيات:

  • إعداد معقد - تحتاج إلى كتابة منطق توزيع الطلبات
  • أغلى - بروكسي ISP تكلف 30-80 دولار لكل IP في الشهر
  • خطر فقدان IP - إذا تم حظر واحد، ستحتاج إلى استبداله

متى تستخدم: للأنظمة ذات الحمل العالي مع حجم 100,000+ طلب في اليوم، حيث تكون السرعة والاستقرار حاسمة. يتطلب خبرة في تطوير المحللين.

الإعدادات الموصى بها لـ Walmart:

لرصد الأسعار (تحليل بسيط لصفحات المنتجات):

  • النوع: بروكسي متغيرة مع تدوير مع كل طلب
  • التأخير بين الطلبات: 2-5 ثواني
  • التوازي: 10-20 خيط
  • الموقع الجغرافي: الولايات المتحدة (يفضل الولاية التي تحتوي على متاجر Walmart الفعلية)

لتحليل معقد (مع تسجيل دخول، سلة):

  • النوع: جلسات لاصقة مع مدة 10-15 دقيقة
  • حد الطلبات لكل IP: بحد أقصى 30-40
  • التأخير بين الطلبات: 3-7 ثواني (تقليد الإنسان)
  • التوازي: 5-10 خيط (أقل عدوانية)

مهم: العديد من مزودي البروكسي السكنية يسمحون بإعداد مدة الجلسة من خلال معلمات الاتصال. على سبيل المثال، بإضافة session-15min إلى اسم المستخدم، ستحصل على جلسة لاصقة لمدة 15 دقيقة. تحقق من هذه الإمكانية مع مزودك.

تجاوز بصمة المتصفح: User-Agent، الرؤوس وبصمات TLS

البروكسيات تحل نصف المشكلة فقط - فهي تعطيك IP نظيف. لكن PerimeterX يحلل ليس فقط IP، ولكن أيضًا "بصمة" المتصفح أو المحلل الخاص بك. حتى مع IP السكنية، ستحصل على حظر إذا كان عميل HTTP الخاص بك يبدو كروبوت.

ما الذي يتحقق منه PerimeterX:

1. User-Agent ورؤوس HTTP

المكتبات القياسية (Python requests، Node.js axios) ترسل رؤوسًا تكشف الروبوت على الفور. على سبيل المثال، User-Agent: python-requests/2.28.1 - هذا يعني حظر بنسبة 100%.

ما يجب تغييره:

  • User-Agent - استخدم إصدارات حديثة من Chrome/Firefox
  • Accept - يجب أن يتوافق مع نوع المحتوى
  • Accept-Language - en-US لتحليل Walmart في الولايات المتحدة
  • Accept-Encoding - gzip، deflate، br
  • Referer - الصفحة السابقة (الفئة أو الرئيسية)
  • Sec-Fetch-* - رؤوس Chrome لحماية CSRF

2. بصمة TLS (JA3)

كل عميل HTTP لديه بصمة TLS فريدة - ترتيب التشفيرات، الامتدادات TLS، إصدارات البروتوكول. يقارن PerimeterX هذه البصمة مع User-Agent: إذا كنت تكتب "Chrome 120"، بينما بصمة TLS من Python - سيتم حظرك.

الحل:

  • استخدم المكتبات التي تدعم TLS مخصص: curl-impersonate (Python)، tls-client (Go)
  • أو استخدم متصفحًا حقيقيًا عبر Selenium/Puppeteer - لديهم بصمة TLS حقيقية

3. تحديات JavaScript وبصمة Canvas

يمكن أن يرسل PerimeterX كود JavaScript يتحقق مما إذا كان: Canvas API متاحًا، WebGL، ما هي الخطوط المثبتة، حجم الشاشة، المنطقة الزمنية. لا يمكن للمحللين البسيطين تنفيذ هذا الكود.

الحل:

  • استخدم المتصفحات بدون واجهة: Puppeteer، Playwright، Selenium
  • تأكد من تفعيل وضع تجاوز الكشف: puppeteer-extra-plugin-stealth
  • قم بتغيير المعلمات: حجم النافذة، المنطقة الزمنية، لغة المتصفح

مثال على الرؤوس الصحيحة لتحليل Walmart:

GET /ip/Product-Name/12345678 HTTP/1.1
Host: www.walmart.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Referer: https://www.walmart.com/browse/electronics/tv-video/3944_1060825
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
Connection: keep-alive

تفاصيل مهمة:

  • ترتيب الرؤوس مهم - ترسل المتصفحات الحقيقية الرؤوس بترتيب معين. استخدم المكتبات التي تحترم هذا الترتيب.
  • الكوكيز - إذا قام PerimeterX بتعيين الكوكيز _px3 أو _pxvid، تأكد من إرساله في الطلبات التالية. هذه هي رمز جلستك.
  • HTTP/2 - يستخدم Walmart HTTP/2، وعدم دعم هذا البروتوكول يمكن أن يكون إشارة إلى روبوت. تأكد من أن عميلك يدعم HTTP/2.
  • لا تستخدم نفس الرؤوس لجميع الطلبات - قم بتغيير User-Agent، استخدم مجموعة من 10-20 إصدار مختلف من المتصفحات.

تحديد معدل الطلبات والتأخيرات: كيف لا تتجاوز حدود الطلبات

حتى مع البروكسيات والرؤوس المثالية، ستحصل على حظر إذا كنت تحلل بشكل عدواني جدًا. يتتبع Walmart تكرار الطلبات وأنماط السلوك. لا يمكن للمستخدم الحقيقي فتح 100 صفحة من المنتجات في دقيقة واحدة - تفهم نظام مكافحة الروبوتات ذلك.

الحدود الموصى بها لـ Walmart:

نوع الطلب التأخير بين الطلبات الحد الأقصى للطلبات من IP واحد التوازي
صفحات المنتجات 2-5 ثواني 30-50 صفحة (مع المتغيرة) 10-20 خيط
صفحات الفئات 3-7 ثواني 20-30 صفحة 5-10 خيط
البحث 5-10 ثواني 10-15 طلب 3-5 خيط
نقاط نهاية API 1-3 ثواني 50-100 طلب 20-30 خيط

لماذا تعتبر عشوائية التأخيرات مهمة:

إذا كنت تقوم بإجراء طلبات كل 3 ثواني بالضبط (3.000، 6.000، 9.000...)، فإن نظام مكافحة الروبوتات يتعرف على النمط. لا يمكن أن يكون الشخص الحقيقي دقيقًا جدًا - سيكون لديه تباينات: 2.8 ثواني، 3.4 ثواني، 2.9 ثواني.

التنفيذ الصحيح للتأخير (Python):

import random
import time

# غير صحيح - تأخير ثابت
time.sleep(3)

# صحيح - تأخير عشوائي
delay = random.uniform(2.0, 5.0)  # من 2 إلى 5 ثواني
time.sleep(delay)

استراتيجيات إدارة الحمل:

1. تحديد معدل متكيف

تتبع نسبة الطلبات الناجحة. إذا بدأت في تلقي 403 أو CAPTCHA - قم تلقائيًا بزيادة التأخيرات وتقليل التوازي.

success_rate = successful_requests / total_requests

if success_rate < 0.8:  # أقل من 80% نجاح
    delay_multiplier *= 1.5  # زيادة التأخيرات
    parallel_workers -= 2    # تقليل الخيوط
elif success_rate > 0.95:  # أكثر من 95% نجاح
    delay_multiplier *= 0.9  # يمكن التسريع
    parallel_workers += 1

2. توزيع حسب أوقات اليوم

قم بالتحليل في أوقات الذروة لنشاط المستخدمين الحقيقيين (مساءً في الولايات المتحدة، 18:00-22:00 بتوقيت شرق الولايات المتحدة). في هذا الوقت، يتم خلط حركة المرور الخاصة بك مع الحركة الشرعية، ويكون نظام مكافحة الروبوتات أقل عدوانية. في الليل (2:00-6:00 بتوقيت شرق الولايات المتحدة)، قد تكون الحماية أكثر صرامة، حيث يوجد عدد أقل من المستخدمين الحقيقيين.

3. تسخين عناوين IP

قبل بدء التحليل الجماعي، "سخن" عناوين IP من خلال طلبات شرعية: افتح الصفحة الرئيسية، بضع فئات، قم بإجراء بحث. هذا يخلق تاريخًا من النشاط ويزيد من درجة الثقة لـ IP.

# تسلسل التسخين لعنوان IP جديد
1. GET https://www.walmart.com/  # الرئيسية
2. تأخير 3-5 ثواني
3. GET https://www.walmart.com/browse/electronics  # الفئة
4. تأخير 4-7 ثواني
5. GET https://www.walmart.com/search?q=laptop  # البحث
6. تأخير 3-6 ثواني
# الآن يمكن تحليل المنتجات المستهدفة

خطأ حرج: لا تستخدم نفس Referer لجميع الطلبات. إذا كنت تقوم بتحليل 1000 منتج وكان لدى الجميع في الرأس نفس Referer - فهذا نمط واضح للروبوت. يجب عليك تغيير Referer بين الطلبات.

```