التحدي
يقوم فريقك بإطلاق منتج لقوائم العقارات. يعمل المنتج لمدة ثلاثة أسابيع. ثم تقوم Zillow بتغيير DOM الخاص بها، وتشدد Rightmove فحوصات TLS الخاصة بها، ويتوقف scraper الخاص بك عن العمل في أربعة من أصل ستة مصادر خلال عطلة نهاية أسبوع واحدة.
يواجه تجميع العقارات مشكلة محددة لا تشاركها مراقبة الأسعار وتتبع SERP. أنت لا تسحب بيانات منظمة من API نظيفة واحدة. بل تقوم بربط قوائم من بوابات تستخدم كل منها بنيات anti-bot مختلفة، وتخطيطات مختلفة، ونطاقات جغرافية مختلفة، ووتائر تحديث مختلفة. Zillow في الولايات المتحدة، وRedfin للبيانات المدعومة من MLS، وRightmove في المملكة المتحدة، وrealestate.com.au في أستراليا، وImmobilienscout24 في ألمانيا. كل بوابة تمثل مشروعاً هندسياً قائماً بذاته.
وفقاً لـ أبحاث Scrapfly لعام 2026، تفحص بوابات العقارات الرائدة بصمات TLS وترفض العملاء الذين لا يحاكون عمليات handshakes بمستوى المتصفح. يستعرض دليل Rightmove الخاص بهم ملفات JSON المضمنة في متغيرات JavaScript والتي يتغير هيكلها كل بضعة أشهر. تقوم Redfin بتجزئة بيانات العقارات عبر العشرات من عقد DOM، لذا فإن تعديلًا بسيطًا واحدًا في التخطيط يمكن أن يؤدي إلى فقدان نصف حقولك دفعة واحدة. وتقدم البوابات الإقليمية محتوى مختلفاً بناءً على بلد الزائر، مما يعني أن scraper المقيم في الولايات المتحدة لن يرى أي شيء مفيد على realestate.com.au.
النتيجة: تتدهور حداثة قوائمك بصمت. يصبح ثلث عقاراتك قديماً في غضون 48 ساعة. يرى مستخدموك أسعاراً من الأسبوع الماضي. يبدأ فريق المبيعات لديك في تلقي اعتراضات، وتتزايد تذاكر الدعم الفني يوم الاثنين لأن تخطيطات البوابات تميل إلى التغيير في عطلات نهاية الأسبوع.
النهج
تجميع القوائم على نطاق واسع ليس مشكلة scraping. إنها مشكلة موثوقية تتنكر في زيها. يغطي مقال لماذا يستمر scraper الخاص بك في التعطل الحالة العامة. وتعمل العقارات على تضخيم كل جزء من هذه المشكلة.
أي منصة تتعامل مع هذا الأمر بشكل جيد تحتاج إلى أربعة أشياء تعمل معاً. أولاً، بصمات TLS تطابق المتصفحات الحقيقية (ليس فقط سلسلة User-Agent على شكل متصفح، بل ترتيب التشفير الفعلي وامتدادات ClientHello التي تستخدمها Zillow و Rightmove لفصل البوتات عن البشر). ثانياً، عناوين IP سكنية دقيقة جغرافياً في كل سوق مستهدف، لأن المجمع الألماني لا يمكنه إرسال حركة مرور من مراكز بيانات أمريكية إلى Immobilienscout24 وتوقع استجابات مفيدة. ثالثاً، توجيه proxy لكل مضيف، لأن الاستراتيجية التي تنجح مع Zillow تفشل مع realestate.com.au. رابعاً، تقديم المتصفح (browser rendering) كخيار بديل للبوابات التي تدفع بكل شيء إلى جانب العميل (client-side).
يبدو طلب عينة ضد Rightmove من خلال منتج Proxy الخاص بـ FourA كالتالي:
curl -X POST https://api.foura.ai/api/proxy/ \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 5,
"timeout_ms": 45000,
"request": {
"method": "GET",
"url": "https://www.rightmove.co.uk/properties/123456",
"unblocker": true,
"followRedirects": 5,
"validate": {
"status": {"accept": [200]},
"data": {"fail": ["blocked", "access denied"]}
}
}
}'
تحقن علامة unblocker مجموعة كاملة من browser headers إلى جانب بصمة TLS المطابقة. تخبر maxTries: 5 مدير proxy بالتدوير عبر ما يصل إلى خمسة عناوين IP حتى ينجح أحدها. تلتقط قواعد التحقق عمليات الحظر الصامتة: استجابات 200 التي تعيد صفحة soft-block بدلاً من بيانات القائمة. وبالتالي، يعكس معدل نجاحك ما نجح بالفعل، وليس ما ادعته حالة HTTP.
تحتاج البوابات التي تقدم كل شيء عبر JavaScript (وRedfin هي المثال الواضح) إلى browser rendering حقيقي. يتعامل منتج Browser الخاص بنا مع هذه الحالات باستخدام مثيل Chromium فعلي، وليس محاكياً خفيف الوزن يتم كشفه عند أول handshake. لقد أصبح كشف البوتات سلوكياً في عام 2026، وأي شيء أقل من متصفح حقيقي يصبح مكشوفاً بشكل متزايد.
النتائج
ماذا يحدث عندما ينتقل مجمع العقارات من بنية كشط مخصصة إلى نهج يعتمد على API أولاً؟ الأنماط التي نراها عبر العمليات الحقيقية (سيناريو توضيحي يعتمد على معايير الصناعة):
- حداثة القوائم تتحسن من "تحديث خلال 48 ساعة" إلى "تحديث خلال ساعتين" للأسواق النشطة
- وقت الهندسة المستغرق في صيانة scraper ينخفض بنسبة 70%. مهندس واحد في نوبة العمل بدلاً من فريق مخصص
- تغطية البوابات تتوسع من 6 مواقع إلى أكثر من 20 موقعاً دون زيادة متناسبة في البنية التحتية
- معدلات الحظر الصامت تنخفض إلى أقل من 3% على البوابات المحمية بمجرد أن تلتقط قواعد التحقق عمليات soft-block
هناك نمط واحد نلاحظه لدى الفرق التي تستخدم منصتنا: بمجرد مشاركة طبقة الموثوقية، يصبح إضافة سوق جديد مجرد تغيير في الإعدادات (configuration change) بدلاً من دورة تطوير (sprint). وتتحول الأسئلة المثيرة للاهتمام من "لماذا تعطل هذا مجدداً" إلى "ما هي البوابة التالية التي يجب أن نضيفها".
الحدود الواقعية: تحتاج بوابات العقارات التي تتطلب جلسات تسجيل دخول (بعض أنظمة MLS، وبعض طرق العرض المخصصة للوكلاء فقط) إلى إدارة الحسابات بالإضافة إلى البنية التحتية للطلبات. هذه مشكلة منفصلة لا نحلها، ولا ينبغي لك أن تثق بأي شخص يدعي أنه يحلها دون شرح كيفية القيام بذلك.
الخلاصة الأساسية
العقارات هي واحدة من الصناعات القليلة التي لا تعتبر فيها البيانات القديمة مجرد إزعاج، بل هي فشل في المنتج. السعر القديم منذ أسبوع على موقع أزياء يسبب إحراجاً طفيفاً. أما القائمة القديمة منذ أسبوع في سوق نشط فتعني أن مستخدمك قد استفسر للتو عن منزل تم بيعه يوم الثلاثاء.
لكن الفرق التي تفوز في هذا المجال ليست تلك التي تمتلك أكبر عدد من المصادر. بل هي تلك التي توقفت عن إعادة بناء نفس بنية proxy و anti-bot لكل بوابة جديدة. بمجرد مشاركة هذه الطبقة، يبدأ العمل المثير للاهتمام: جودة البيانات، واتفاقيات مستوى الخدمة للحداثة (freshness SLAs)، وإزالة التكرار عبر البوابات، وتحليل اتجاهات الأسعار. هذا هو المنتج. وكل شيء آخر أدناه يجب أن يعمل ببساطة.