انتقل إلى المحتوى

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

مرحبا هناك!

إذا كنت تتطلع إلى أتمتة عملية تجريف الويب، فمن المحتمل أنك تفكر في استخدام السيلينيوم أو Playwright. كلاهما يسمح بالتحكم في المتصفحات برمجياً لاستخراج البيانات.

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

دعنا نتعمق ونرى أيهما أكثر ملاءمة لاحتياجاتك!

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

قبل أن نقارن بين الأداتين، اسمحوا لي أن أقدم نظرة عامة سريعة:

عنصر السيلينيوم هو إطار عمل تلقائي للاختبار مفتوح المصدر للتحقق من صحة تطبيقات الويب عبر المتصفحات وأنظمة التشغيل. وهو يوفر أداة التسجيل والتشغيل Selenium IDE لتأليف الاختبارات بدون تشفير.

ولكن بالنسبة لكشط الويب، ستحتاج سيلينيوم WebDriver والذي يسمح بالتحكم في إجراءات المتصفح من خلال التعليمات البرمجية. وهو يدعم لغات مثل Python وJava وC# وJavaScript وما إلى ذلك.

الكاتب المسرحي هي مكتبة أحدث مفتوحة المصدر تحتفظ بها Microsoft لاختبار تطبيقات الويب والأتمتة. يوفر واجهة برمجة تطبيقات واحدة للتحكم في متصفحات Chromium وFirefox وWebKit.

حتى في الخلاصة:

  • عنصر السيلينيوم هو اللاعب الأكثر رسوخًا وله جذور في أتمتة الاختبار
  • الكاتب المسرحي هو الطفل الجديد في المجموعة الذي تم تصميمه في الأصل للاختبار أيضًا

الآن دعونا نلقي نظرة على سبب شهرة هذه الأدوات في تجريف الويب.

لماذا نستخدم السيلينيوم أو الكاتب المسرحي لتجريد الويب؟

يعد Selenium وPlaywright من أكثر خيارات أتمتة المتصفح انتشارًا لعدة أسباب رئيسية:

1. التحكم في المتصفح بدون رأس

تسمح كلتا المكتبتين بتشغيل متصفحات مثل Chrome وFirefox في وضع مقطوعة الرأس. وهذا يعني أنه يمكنك التحكم في المتصفح برمجيًا دون فتح واجهة المستخدم الرسومية الفعلية.

يعد وضع مقطوعة الرأس مثاليًا لتجريد الويب نظرًا لأنك لا تحتاج إلى رؤية الإجراءات التي يقوم بها المتصفح بشكل مرئي. إنه أسرع وأكثر كفاءة.

2. دعم متعدد المتصفحات

يدعم Selenium وPlaywright جميع المتصفحات الرئيسية بما في ذلك Chrome وFirefox وEdge وما إلى ذلك. وهذا يسمح لك بكتابة نصوص برمجية تعمل عبر المتصفحات.

3. المرونة اللغوية

يمكنك برمجة البرامج النصية للأتمتة بلغات مثل Python وJavaScript وJava وما إلى ذلك. اعتمادًا على مهارات فريقك، يوفر ذلك المرونة في استخدام السيلينيوم أو Playwright.

4. التفاعل مع عناصر الصفحة

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

5. إدارة الجلسات والدولة

أنها توفر طرقًا للتعامل مع ملفات تعريف الارتباط وذاكرة التخزين المؤقت وتقليد جلسات المستخدم. يساعد هذا في التغلب على إجراءات مكافحة التجريف على مواقع الويب.

6. دعم المواقع الديناميكية

يمكن لـ Selenium وPlaywright تنفيذ JavaScript الذي يسمح بمسح المواقع التفاعلية وليس فقط صفحات HTML البسيطة. سوف نستكشف هذا أكثر بعد قليل.

باختصار، إن التحكم في المتصفح ودعم اللغة وتفاعلات العناصر والتعامل الديناميكي مع الصفحة يجعل هذه المكتبات متعددة الاستخدامات لتجميع الويب.

الآن دعونا نتعمق أكثر في كيفية اختلافها وقدراتها الأساسية خصيصًا لاستخراج الويب.

الاختلافات الرئيسية بين السيلينيوم والكاتب المسرحي للكشط

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

1. دعم اللغة والمجتمع

كما ذكر آنفا، عنصر السيلينيوم يشيع استخدامه مع بايثون لتقطيع الويب. يقدم نظام Python البيئي عددًا كبيرًا من المكتبات المتعلقة بالتجريد مثل Beautiful Soup وScrapy وما إلى ذلك.

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

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

على الرغم من أن Playwright يدعم لغة Python، إلا أن مطوري JavaScript غالبًا ما يفضلونها على السيلينيوم. تحتفظ Microsoft بنشاط Playwright حتى يزدهر نظامها البيئي حول JS/Node.

وهذا يعني أنه اعتمادًا على معرفة فريقك، قد تكون هناك أداة واحدة أكثر ملاءمة. بالنسبة للفرق التي تركز على بايثون، يعد استخدام السيلينيوم أسهل. بالنسبة لمطوري JS، يسمح Playwright بالاستفادة من المهارات الموجودة.

2. التحكم في المتصفح وإدارته

يطلق السيلينيوم نسخة متصفح جديدة لكل اختبار أو إجراء. على سبيل المثال، تؤدي زيارة صفحة جديدة إلى فتح نافذة متصفح جديدة تمامًا في كل مرة.

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

الكاتب المسرحي يبدأ المتصفح مرة واحدة ثم يقوم بإنشاء سياقات لكل إجراء. تقوم السياقات بعزل البيانات الخاصة بالجلسة مثل ملفات تعريف الارتباط والتخزين وما إلى ذلك داخل نفس مثيل المتصفح.

التبديل بين السياقات سريع للغاية مقارنة بتدوير المتصفحات الجديدة. وهذا يجعل Playwright سريعًا جدًا عندما تحتاج إلى التعامل مع علامات تبويب أو نوافذ أو جلسات متعددة.

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

3. التفاعل مع عناصر الصفحة

يستخدم السيلينيوم WebElements لتحديد موقع عناصر DOM والتفاعل معها مثل الأزرار والمدخلات وما إلى ذلك.

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

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

الكاتب المسرحي يتجنب هذا من خلال إمكانية التنفيذ ميزة. إجراءات مثل النقر والكتابة وما إلى ذلك الانتظار تلقائيا للعناصر لتلبية شروط مسبقة معينة قبل التفاعل.

على سبيل المثال، قبل النقر، ينتظر الكاتب المسرحي حتى يصبح العنصر مرئيًا ومستقرًا وقابلاً للتنفيذ وما إلى ذلك. يؤدي هذا الانتظار التلقائي الموثوق إلى التخلص من حالات السباق.

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

4. التعامل مع المواقع الديناميكية

تعرض مواقع الويب الحديثة المحتوى ديناميكيًا باستخدام JavaScript. يتطلب تجريفها تنفيذ JS لإنشاء مصدر HTML الكامل.

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

يمكن للكاتب المسرحي أيضًا التعامل مع مواقع الويب الديناميكية بشكل موثوق. تحت الغطاء، يستخدم بروتوكول Chrome DevTools لتقييم JavaScript وانتظار تغييرات HTML الناتجة.

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

5. انتظار ظهور العناصر

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

لا يحتوي السيلينيوم على فترات انتظار مدمجة. يجب عليك استخدام فترات انتظار صريحة وسلسة جنبًا إلى جنب مع الشروط المتوقعة لإنجاحها.

وهذا يجعل البرامج النصية معقدة مع الكثير من المنطق غير المتزامن. توجد مكتبات مثل WebDriverWait لتبسيط الأمر ولكن لا يوجد حل جاهز.

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

المهلات الافتراضية قابلة للتكوين. وهذا يوفر عليك جهد انتظار الترميز المعقد في البرامج النصية الخاصة بك.

6. ميزات إضافية

بالإضافة إلى الأساسيات، يوفر Playwright بعض الميزات الرائعة التي تعمل على تبسيط عملية التشغيل الآلي.

  • لقطات تلقائية عند الفشل أو يدويًا في البرنامج النصي
  • تتبع المشاهد لتصحيح البرامج النصية بصريا
  • اختبار القطع الأثرية مثل مقاطع الفيديو وسجلات وحدة التحكم وما إلى ذلك
  • محاكاة أحجام الأجهزة لاختبار الاستجابة
  • الشبح وضع لتجنب اكتشاف الروبوتات

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

7. دعم الهاتف المحمول

خارج الصندوق، لا يدعم Playwright ولا Selenium متصفحات الأجهزة المحمولة مثل Safari iOS أو Chrome Android.

لتجميع الويب على الأجهزة المحمولة، يلزم وجود أدوات خارجية مثل Appium أو Selenium WebDriverIO. هذا هو أحد القيود الشائعة.

8. التسعير والدعم

السيلينيوم مفتوح المصدر بالكامل بموجب ترخيص Apache. جوهر Playwright مفتوح المصدر ولكنه يقدم ميزات إضافية من خلال النظام الأساسي السحابي الخاص بهم وهو مجاني لما يصل إلى 500 اختبار شهريًا.

فيما يتعلق بالدعم، يتمتع السيلينيوم بمجتمع واسع نظرًا لطول عمره. يقدم الكاتب المسرحي الوثائق الرسمية والدعم من Microsoft.

الآن دعونا نلخص متى يجب استخدام كل أداة.

الوجبات السريعة الرئيسية - متى تستخدم السيلينيوم مقابل الكاتب المسرحي

بناءً على قدراتهم، إليك بعض التوصيات حول متى يتم استخدام السيلينيوم مقابل الكاتب المسرحي:

خذ بعين الاعتبار السيلينيوم عندما:

  • أنت أو فريقك أكثر كفاءة في لغة بايثون
  • لديك نصوص برمجية موجودة في Selenium Python لإعادة استخدامها
  • تحتاج إلى الوصول إلى مجموعة واسعة من روابط اللغة
  • أصبحت احتياجات تجريف الويب لديك أكثر بساطة، مثل استخراج البيانات من مواقع HTML الثابتة

خذ بعين الاعتبار الكاتب المسرحي عندما:

  • يتمتع فريقك بمهارات عالية في JavaScript وNode.js
  • تحتاج إلى التعامل مع المواقع الأكثر تعقيدًا باستخدام الكثير من تحديثات JavaScript والتحديثات في الوقت الفعلي
  • تريد بدء البرامج النصية من البداية بدون تعليمات برمجية قديمة
  • تريد ميزات مدمجة مثل الانتظار التلقائي ودعم المتصفحات وما إلى ذلك.
  • تريد الاستفادة من إمكانات الاختبار السحابي لـ Playwright

حتى في الخلاصة:

  • لتلبية احتياجات الكشط الأبسط، يمكن أن تعمل كلتا الأداتين
  • بالنسبة للمواقع المعقدة التي تعتمد على جافا سكريبت، يتمتع Playwright ببعض المزايا
  • تعد الإلمام باللغة الحالية أمرًا أساسيًا عند اتخاذ القرار

بعد ذلك، دعونا نرى كيف يمكنك التبديل فعليًا من السيلينيوم إلى الكاتب المسرحي.

ترحيل مخطوطات تجريف الويب من السيلينيوم إلى الكاتب المسرحي

إذا كانت احتياجات تجريف الويب الخاصة بك قد تجاوزت السيلينيوم، فمن الطبيعي أن تفكر في الانتقال إلى Playwright.

فيما يلي بعض النصائح لإجراء التبديل بناءً على تجربتي:

1. قم بتشغيل نصوص السيلينيوم والكاتب المسرحي بالتوازي

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

2. ابدأ بنقل كاشطات بسيطة أولاً

لا تحاول تحويل نص 15K LOC السيلينيوم الأكثر تعقيدًا إلى كاتب مسرحي دفعة واحدة. ابدأ باستخدام كاشطات أبسط ذات تدفقات أقل للتعرف على واجهة برمجة تطبيقات Playwright وبناء الجملة. تعلم المشي قبل أن تتمكن من الركض!

3. استخدم الانتظار التلقائي للكاتب المسرحي بدلاً من الانتظار الصريح

توفر لك آلية الانتظار التلقائية الخاصة بـ Playwright من برمجة فترات الانتظار المعقدة في أدوات الكشط الخاصة بك. اعتمد على اختبارات قابلية التنفيذ بدلاً من ذلك للتأكد من الموثوقية.

4. استخدم سياقات المتصفح لإدارة الجلسات والحالة

استفد من سياقات متصفح Playwright لعزل الجلسات وملفات تعريف الارتباط وذاكرة التخزين المؤقت وما إلى ذلك. وهذا يزيل الحمل الزائد لتدوير مثيلات المتصفح المنفصلة.

5. جرب Playwright Inspector لتسريع عملية تطوير النص

يمنحك Playwright Inspector محددات فورية للعناصر ونموذجًا للتعليمات البرمجية للبرنامج النصي الخاص بك. استخدامه لتطوير البرامج النصية الجديدة بشكل أسرع.

6. اكتشف ميزات مثل التتبع والتسجيل وتصحيح الأخطاء

استفد من إمكانات Playwright الإضافية مثل التتبع والمصنوعات اليدوية وتكامل CI/CD وما إلى ذلك لتحسين أداء المكشطة وتسهيل الصيانة.

يستغرق ترحيل كاشطات العالم الحقيقي وقتًا، ولكن اتباع هذه الخطة يمكن أن يضمن حدوث ذلك بسلاسة.

إيجابيات وسلبيات السيلينيوم مقابل الكاتب المسرحي لكشط الويب

دعونا نلخص المزايا والقيود الرئيسية لـ Selenium وPlaywright خصيصًا لتجريد الويب:

عنصر السيلينيوم

الايجابيات:

  • مكتبة ناضجة ومستقرة مع نظام بايثون البيئي الضخم
  • يدعم لغات متعددة تتجاوز لغة بايثون فقط
  • بنية قابلة للتوسيع للغاية مع العديد من حزم الطرف الثالث
  • دعم موثوق لمواقع جافا سكريبت الديناميكية
  • توثيق رائع ومجتمع نشط على مدى عقود

سلبيات:

  • لا يوجد مواطن ينتظر فرض المنطق غير المتزامن المعقد
  • إدارة مثيلات المتصفح أبطأ
  • تحتاج مشكلات العناصر التي لا معنى لها إلى معالجة واضحة
  • مكتبات الطرف الثالث مطلوبة للعديد من الإمكانات المضافة

الكاتب المسرحي

الايجابيات:

  • سريع وموثوق به بسبب الانتظار التلقائي
  • تفاعل العناصر المبسط باستخدام محددات المواقع
  • سياقات المتصفح سهلة الاستخدام للعزلة
  • التقارير المضمنة ولقطات الشاشة والتحف
  • تتم صيانته بشكل نشط بواسطة Microsoft، وهو نظام بيئي مزدهر

سلبيات:

  • أكثر ملاءمة لـ JavaScript/TypeScript من Python
  • مشروع جديد نسبيًا لذا فإن الوثائق القديمة محدودة
  • يمكن أن تخضع واجهة برمجة التطبيقات (API) لتغييرات أكثر تكرارًا
  • تحتاج الميزات الإضافية مثل محاكاة الجهاز إلى الدفع

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

افكار اخيرة

يعد كل من Selenium وPlaywright أداتين ممتازتين لأتمتة المتصفح ويمكنهما إنجاز معظم مهام تجريف الويب.

يعتمد تحديد الخيار المناسب لك على متطلباتك المحددة فيما يتعلق باللغة والتعليمات البرمجية القديمة وأنواع المواقع ومهارات الفريق.

توصيتي هي وضع نموذج أولي لتدفقات تجريف المفاتيح الخاصة بك مع كلتا المكتبتين على نطاق صغير.

سيكشف هذا عن وجود أي أدوات حظر تجعل أحدهما فائزًا واضحًا على الآخر في حالتك.

آمل أن تساعد هذه المقارنة التفصيلية التي تزيد عن 3600 كلمة بين السيلينيوم والكاتب المسرحي لتجريد الويب في توفير الوضوح. أنت الآن مجهز بشكل أفضل لاختيار الأداة المناسبة والبدء في العمل!

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

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *