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

جمع البيانات لمجموعات بيانات التعلم الآلي: كيفية استخراج آلاف الصفحات دون حظر أو كابتشا

نستعرض كيفية جمع كميات كبيرة من البيانات لمجموعات بيانات التعلم الآلي دون حظر أو كابتش — ما هي البروكسيات التي يجب اختيارها وكيفية تنظيم العملية.

📅٢٥ رمضان ١٤٤٧ هـ
```html

تعتمد جودة نموذج التعلم الآلي بشكل مباشر على جودة وحجم بيانات التدريب. ولكن بمجرد أن تبدأ في جمع آلاف الصفحات - تبدأ المواقع في حظر الطلبات، وعرض CAPTCHA، وحظر عنوان IP. في هذه المقالة، سنناقش كيفية بناء خط أنابيب موثوق لجمع البيانات لمجموعات البيانات: ما هي الأدوات التي يجب استخدامها، وكيفية تجاوز الحمايات، ونوع البروكسي المناسب لكل مهمة.

لماذا تحظر المواقع جمع البيانات وماذا تفعل حيال ذلك

عندما تبدأ في جمع البيانات تلقائيًا، ترى المواقع ليس مستخدمًا عاديًا، بل تدفقًا من الطلبات من عنوان IP واحد. وهذا يرفع على الفور الأعلام الحمراء لدى أنظمة الحماية - Cloudflare، DataDome، PerimeterX وغيرها من حلول مكافحة الروبوتات. النتيجة: CAPTCHA، حظر مؤقت، أو حظر كامل لعنوان IP.

المشكلة حادة بشكل خاص لمشاريع التعلم الآلي، لأن مجموعة البيانات تتطلب ليس 100 صفحة، بل عشرات الآلاف. لتدريب حتى نموذج بسيط لتصنيف النصوص، تحتاج إلى الحد الأدنى من 5,000-10,000 مثال. للرؤية الحاسوبية - مئات الآلاف من الصور. من المستحيل جمع مثل هذا الحجم من عنوان IP واحد.

تقوم أنظمة الحماية بتحليل المعلمات التالية:

  • تكرار الطلبات - أكثر من 10-20 طلبًا في الدقيقة من عنوان IP واحد يعتبر مشبوهًا.
  • User-Agent والرؤوس - الرؤوس القياسية للبرامج النصية يمكن التعرف عليها بسهولة.
  • غياب ملفات تعريف الارتباط وبيانات الجلسة - المتصفح الحقيقي دائمًا يحمل تاريخًا.
  • الموقع الجغرافي لعنوان IP - عنوان IP لمركز بيانات من هولندا على موقع باللغة الروسية يبدو مشبوهًا.
  • نمط السلوك - الإنسان يقرأ الصفحة لمدة 30-60 ثانية، بينما الروبوت يقرأها في 0.3 ثانية.

الحل هو مزيج من البروكسي الصحيح، وتدوير IP، وتقليد سلوك المستخدم الحقيقي. دعونا نناقش كل عنصر بمزيد من التفصيل.

من أين تأتي البيانات لمجموعات بيانات ML: المصادر الرئيسية

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

مجموعات البيانات المفتوحة (بدون تنقيب)

أول شيء يجب التحقق منه هو مجموعات البيانات المفتوحة الموجودة بالفعل. تحتوي Kaggle، Hugging Face Datasets، Google Dataset Search، UCI Machine Learning Repository على آلاف مجموعات البيانات الجاهزة. إذا كانت مهمتك قياسية (تصنيف النصوص، التعرف على الكائنات، تحليل المشاعر)، فمن المحتمل أن مجموعة البيانات موجودة بالفعل. هذا يوفر أسابيع من العمل.

تنقيب الويب (يتطلب بروكسي)

عندما لا توجد بيانات جاهزة أو لا تناسب تخصصك - تحتاج إلى التنقيب. المهام النموذجية:

  • جمع التقييمات من Wildberries، Ozon، Yandex.Market لتحليل المشاعر
  • تنقيب مواقع الأخبار لتدريب نماذج اللغة
  • جمع صور المنتجات لنماذج الرؤية الحاسوبية
  • تنقيب الوظائف من hh.ru، SuperJob لنماذج الموارد البشرية
  • جمع بيانات الأسعار من الأسواق لنماذج التنبؤ
  • تنقيب الشبكات الاجتماعية (VKontakte، Twitter/X) لمهام معالجة اللغة الطبيعية

API المنصات (مغلقة جزئيًا)

توفر بعض المنصات واجهات برمجة التطبيقات الرسمية - Twitter/X API، Reddit API، Google Places API. المشكلة: إنها مكلفة، ولديها حدود وغالبًا ما لا توفر الحجم المطلوب من البيانات مجانًا. لذلك، تقوم العديد من فرق التعلم الآلي بدمج واجهات برمجة التطبيقات مع التنقيب.

البيانات الاصطناعية

نهج منفصل هو توليد بيانات اصطناعية باستخدام GPT-4 أو نماذج اللغة الكبيرة الأخرى. لكن لا يزال من الضروري وجود بيانات حقيقية كأساس (أمثلة قليلة). لذلك، يبقى التنقيب الأداة الأساسية لجمع البيانات لمعظم مشاريع التعلم الآلي.

أدوات لجمع البيانات دون كتابة كود

الخبر الجيد: لجمع البيانات لمجموعات بيانات ML، ليس من الضروري أن تكون مطورًا. هناك أدوات جاهزة بدون كود وأدوات منخفضة الكود يمكنها العمل مع البروكسي وتجاوز الحمايات الأساسية.

مستخلصات بدون كود

الأداة لما هي مناسبة دعم البروكسي الصعوبة
Octoparse المواقع، الجداول، الترقيم ✅ نعم منخفضة
ParseHub المواقع الديناميكية (JS) ✅ نعم منخفضة
Apify عوامل جاهزة لأكثر من 100 موقع ✅ مدمجة متوسطة
Bright Data IDE مواقع محمية معقدة ✅ مدمجة متوسطة
Scrapy Cloud تنقيب واسع النطاق ✅ عبر middleware عالية

بالنسبة لمعظم مهام جمع بيانات ML، يكفي استخدام Octoparse أو Apify. يتيح لك Octoparse إعداد المستخرج بصريًا في 20-30 دقيقة: تحدد العناصر على الصفحة، وتضبط الترقيم، وتدخل البروكسي - ثم تبدأ في الجمع. يتم تصدير النتيجة إلى CSV أو JSON، والتي يمكن استخدامها مباشرة للتدريب.

Apify مريح بشكل خاص إذا كنت بحاجة إلى تنقيب منصات شائعة: لديهم عوامل جاهزة لـ Instagram، Twitter/X، Amazon، Google Maps، LinkedIn والعديد من المواقع الأخرى. ما عليك سوى تحديد المعلمات - وستحصل على بيانات منظمة.

ما هو نوع البروكسي الذي يجب اختياره لمجموعات بيانات ML

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

بروكسي سكنية - للمواقع المحمية

البروكسي السكنية هي عناوين IP لمستخدمين حقيقيين في منازلهم. بالنسبة لأنظمة مكافحة الروبوتات، لا يمكن تمييزها عن الزائر العادي. وهذا يجعلها مثالية لتنقيب المواقع ذات الحماية القوية: الأسواق (Wildberries، Ozon)، الشبكات الاجتماعية، المجمعات الإخبارية.

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

بروكسي موبايل - للشبكات الاجتماعية والمنصات المحمولة

البروكسي المحمولة تستخدم عناوين IP لمشغلي الهواتف المحمولة (4G/5G). لديهم أعلى مستوى من الثقة لدى المنصات - لأن عنوان IP المحمول الواحد يستخدمه مئات الأشخاص في نفس الوقت (جميع المشتركين في برج واحد يخرجون من خلال عنوان IP واحد). وهذا يعني أن حتى جمع البيانات النشط من عنوان IP المحمول يبدو طبيعيًا.

البروكسي المحمولة ضرورية بشكل خاص إذا كنت تجمع البيانات من VKontakte، TikTok أو Instagram - المنصات التي تحظر بشكل عدواني عناوين IP لمراكز البيانات.

بروكسي مراكز البيانات - للمصادر المفتوحة والسرعة

بروكسي مراكز البيانات سريعة ورخيصة. ليس لديها ارتباط بمستخدمين حقيقيين، لذلك يسهل التعرف عليها من قبل أنظمة الحماية. لكن بالنسبة للعديد من مهام ML، يكفي ذلك: إذا كنت تقوم بتنقيب ويكيبيديا، الأرشيفات المفتوحة، GitHub، واجهات برمجة التطبيقات العامة أو المواقع بدون حماية قوية - ستقوم بروكسي مراكز البيانات بعمل ممتاز وستكون أرخص بكثير.

كيفية اختيار نوع البروكسي لمهمة ML الخاصة بك:

  • الأسواق (Wildberries، Ozon، Avito): بروكسي سكنية مع تدوير
  • الشبكات الاجتماعية (VKontakte، Instagram، TikTok): بروكسي موبايل
  • مواقع الأخبار، المنتديات، ويكيبيديا: بروكسي مراكز البيانات
  • بحث Google، Yandex: بروكسي سكنية أو موبايل
  • الأرشيفات المفتوحة، Common Crawl: بروكسي مراكز البيانات

سيناريوهات عملية: نصوص، صور، أسعار، تقييمات

دعونا نناقش سيناريوهات محددة لجمع البيانات لأنواع مهام ML الشائعة - مع تحديد المصادر، الأدوات ونوع البروكسي المطلوب.

السيناريو 1: مجموعة بيانات تقييمات لتحليل المشاعر (NLP)

المهمة: جمع 50,000 تقييمًا مع درجات من Wildberries لتدريب نموذج تصنيف المشاعر.

المصدر: Wildberries - تقييمات للمنتجات مع درجات من 1-5 نجوم (التصنيف المثالي موجود بالفعل).
الأداة: Octoparse أو سكربت جاهز بلغة Python مع مكتبة requests.
البروكسي: سكنية مع تدوير - Wildberries تحظر بنشاط عناوين IP لمراكز البيانات.
سرعة الجمع: 1 طلب كل 3-5 ثوانٍ مع فترات توقف - 50,000 تقييم في 2-3 أيام.

ما تحصل عليه: ملف CSV مع الأعمدة: نص التقييم، الدرجة (1-5)، فئة المنتج، التاريخ. هذه مجموعة بيانات جاهزة للتدريب - التصنيف مدمج بالفعل في البيانات.

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

المهمة: جمع 100,000 صورة للمنتجات من عدة فئات لتدريب نموذج التصنيف.

المصدر: Ozon، Yandex.Market - صور للمنتجات مع الفئات.
الأداة: Apify (يوجد عوامل جاهزة للتجارة الإلكترونية) أو ParseHub.
البروكسي: بروكسي سكنية مع تدوير جغرافي في روسيا.
مهم: قم بتنزيل الصور عبر البروكسي، وليس مباشرة - يمكن لخوادم CDN أيضًا حظر التحميلات الجماعية.

ما تحصل عليه: مجلدات بالصور، مقسمة حسب الفئات - هيكل يتقبله مباشرة ImageDataGenerator في Keras أو DataLoader في PyTorch.

السيناريو 3: مجموعة نصية لنموذج اللغة

المهمة: جمع مجموعة كبيرة من النصوص باللغة الروسية لإعادة تدريب (fine-tuning) نموذج اللغة حول موضوع معين - مثل النصوص القانونية أو المقالات الطبية.

المصدر: المنتديات المتخصصة، مواقع الأخبار، Habr، البوابات المهنية.
الأداة: Scrapy Cloud أو Octoparse لجمع منظم.
البروكسي: بروكسي مراكز البيانات مع تدوير - معظم مواقع النصوص لا تحتوي على حماية صارمة، والسرعة أهم من الخصوصية.
السرعة: مع بروكسي مراكز البيانات، يمكنك إجراء 50-100 طلبًا في الدقيقة وجمع مليون مستند في غضون أيام قليلة.

السيناريو 4: مجموعة بيانات الوظائف لنموذج الموارد البشرية

المهمة: جمع 200,000 وظيفة من hh.ru لتدريب نموذج توصية أو تصنيف المهن.

المصدر: hh.ru - لديهم واجهة برمجة تطبيقات رسمية، ولكن مع حدود. لجمع كميات كبيرة، تحتاج إلى التنقيب.
الأداة: Apify (يوجد عامل لـ hh.ru) أو Octoparse.
البروكسي: بروكسي سكنية - hh.ru محمي جيدًا ويقوم بحظر عناوين IP لمراكز البيانات.
ما تحصل عليه: بيانات منظمة: عنوان الوظيفة، الوصف، الراتب، المتطلبات، المنطقة، الصناعة - مجموعة بيانات ممتازة لمهام معالجة اللغة الطبيعية ونظم التوصية.

كيفية تجنب الحظر عند جمع البيانات بكميات كبيرة

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

تدوير IP والجلسات

القاعدة الأكثر أهمية: لا تستخدم عنوان IP واحد لآلاف الطلبات. قم بإعداد التدوير بحيث يتم تغيير عنوان IP كل 10-50 طلبًا. تدعم معظم الأدوات (Octoparse، Apify، Scrapy) ذلك بشكل افتراضي عند الاتصال بمجموعة بروكسي.

بالإضافة إلى ذلك، قم بتغيير ملفات تعريف الارتباط للجلسة مع عنوان IP - فهذا يقلد مستخدمًا جديدًا، وليس مجرد تغيير عنوان.

تأخيرات صحيحة بين الطلبات

أضف تأخيرات عشوائية بين الطلبات - ليست ثابتة لمدة ثانيتين، بل عشوائية من 1 إلى 5 ثوانٍ. الفاصل الثابت يمكن اكتشافه بسهولة كنمط للروبوتات. العشوائي - يقلد سلوك الإنسان.

بالنسبة للمواقع المحمية بشكل خاص، أضف فترات توقف أطول: بعد كل 100 طلب، قم بأخذ استراحة لمدة 30-60 ثانية. هذا يقلل من السرعة، ولكنه يقلل بشكل جذري من خطر الحظر.

رؤوس الطلبات الصحيحة

قم بإعداد User-Agent على متصفح حديث (Chrome، Firefox من الإصدارات الأخيرة). أضف رؤوس HTTP القياسية: Accept-Language، Accept-Encoding، Referer. غياب هذه الرؤوس هو علامة واضحة على الروبوت لمعظم أنظمة الحماية.

الجمع في أوقات غير العمل

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

معالجة الأخطاء وإعادة المحاولات

قم بإعداد معالجة تلقائية لرموز الاستجابة:

  • 429 (طلبات كثيرة جدًا) - زد التأخير، غير عنوان IP، انتظر 5-10 دقائق.
  • 403 (ممنوع) - تم حظر عنوان IP، تأكد من تغيير البروكسي.
  • 503 (الخدمة غير متاحة) - تحميل مؤقت للخادم، حاول مرة أخرى بعد 1-2 دقيقة.
  • 200 مع CAPTCHA - تحتاج إلى بروكسي أفضل (سكنية بدلاً من مراكز البيانات).

التوافق الجغرافي للبروكسي والموقع

استخدم بروكسي من نفس البلد الذي يقع فيه الموقع المستهدف. إذا كنت تقوم بتنقيب Wildberries - اختر عناوين IP روسية. إذا كنت تجمع البيانات من موقع ألماني - تحتاج إلى بروكسي ألمانية. عدم التوافق الجغرافي هو أحد أكثر المحفزات شيوعًا للحظر.

قائمة التحقق: إعداد خط أنابيب جمع البيانات لـ ML

استخدم هذه القائمة قبل بدء أي جمع بيانات على نطاق واسع لمجموعة البيانات:

📋 التحضير

  • ☐ تحقق من وجود مجموعة بيانات جاهزة على Kaggle / Hugging Face
  • ☐ دراسة robots.txt للموقع المستهدف
  • ☐ تحديد حجم البيانات وهيكل مجموعة البيانات
  • ☐ اختيار أداة التنقيب (Octoparse، Apify، Scrapy)
  • ☐ اختيار نوع البروكسي حسب المهمة (سكنية / موبايل / مراكز البيانات)

⚙️ الإعداد

  • ☐ توصيل مجموعة البروكسي مع تدوير IP
  • ☐ إعداد User-Agent (Chrome/Firefox الحديثة)
  • ☐ إضافة رؤوس HTTP القياسية
  • ☐ إعداد تأخيرات عشوائية (1-5 ثوانٍ)
  • ☐ إعداد معالجة الأخطاء (429، 403، 503)
  • ☐ تحديد تنسيق تصدير البيانات (CSV، JSON، JSONL)

🧪 الاختبار

  • ☐ تشغيل اختبار على 100-500 سجل
  • ☐ التحقق من جودة وكمال البيانات
  • ☐ التأكد من عدم وجود حظر على حجم الاختبار
  • ☐ التحقق من سرعة الجمع وحساب الوقت لمجموعة البيانات الكاملة

🚀 التشغيل والمراقبة

  • ☐ بدء التشغيل في الليل (02:00-06:00 بتوقيت موسكو)
  • ☐ إعداد إشعارات الأخطاء
  • ☐ التحقق من جودة البيانات المجمعة بشكل دوري
  • ☐ حفظ النتائج الوسيطة (نقطة تفتيش كل 10,000 سجل)

🧹 المعالجة اللاحقة

  • ☐ إزالة التكرارات
  • ☐ تنظيف علامات HTML والرموز الخاصة من النصوص
  • ☐ التحقق من توازن الفئات (لمهام التصنيف)
  • ☐ تقسيم إلى مجموعات train/validation/test
  • ☐ حفظ بتنسيق متوافق مع إطار عمل ML الخاص بك

الخاتمة

جمع البيانات لمجموعات بيانات ML ليس مهمة لمرة واحدة، بل هو عملية نظامية. الاستنتاجات الرئيسية من هذه المقالة: الاختيار الصحيح للبروكسي يحدد ما إذا كنت ستصل إلى النهاية أو ستعلق في الحظر. البروكسي السكنية ضرورية للأسواق المحمية والمجمعات، والبروكسي المحمولة للشبكات الاجتماعية، وبروكسي مراكز البيانات للمصادر النصية المفتوحة. أدوات مثل Octoparse وApify تسمح ببناء خط أنابيب دون كتابة كود. واتباع القواعد الأساسية (تدوير IP، تأخيرات عشوائية، رؤوس صحيحة) يسمح بجمع مئات الآلاف من السجلات دون خسائر.

إذا كنت تخطط لجمع البيانات من الأسواق، مواقع الأخبار أو البوابات المتخصصة لتدريب نماذج ML، نوصي بالبدء بـ البروكسي السكنية - فهي توفر أعلى مستوى من الثقة من أنظمة الحماية وأقل خطر من الحظر حتى عند جمع البيانات بكميات كبيرة.

```