دليل شامل لأتمتة الويب باستخدام Puppeteer و Firefox

آخر تحديث: 19/06/2026
نبذة عن الكاتب: إسحاق
  • يتيح برنامج Puppeteer التحكم الكامل في متصفحات Chromium، ومؤخراً، التوافق المستقر مع Firefox عبر WebDriver BiDi.
  • تتفوق هذه الأداة في استخراج البيانات من مواقع الويب، وإنشاء ملفات PDF، واختبارات E2E، متفوقة على الخيارات القديمة مثل PhantomJS.
  • يسمح التطور نحو الذكاء الاصطناعي لبرنامج Puppeteer بالعمل كمحرك تنفيذ للوكلاء المستقلين الذين يتنقلون بطريقة تشبه طريقة البشر.

أتمتة الويب

إذا كنت تعمل في مجال تطوير المواقع الإلكترونية، فأنت تعلم أن اختبار كل جزء من الصفحة يدويًا أمرٌ مرهقٌ للغاية ومضيعةٌ هائلةٌ للوقت. وهنا يأتي دور [الحل/الأداة]. مما يسمح لنا بالتحكم في المتصفح لتنفيذ المهام المتكررة تلقائيًا، سواء لتشغيل الاختبارات أو استخراج البيانات.

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

الأتمتة باستخدام وكلاء الذكاء الاصطناعي
مقالة ذات صلة:
الأتمتة باستخدام وكلاء الذكاء الاصطناعي: الاستخدامات والأدوات والأمان

ما هو برنامج Puppeteer بالضبط وكيف يعمل؟

باختصار، Puppeteer هو برنامج مفتوح المصدر يوفر واجهة برمجة تطبيقات عالية المستوى لإدارة متصفحي Chrome أو Chromium. على عكس الأدوات الأخرى التي تتطلب برامج تشغيل خارجية، يتواصل Puppeteer باستخدام بروتوكول أدوات مطوري Chrome (CDP) ، مما يمنح تحكمًا دقيقًا في DOM والشبكة والأداء.

في عالمنا اليوم، يوجد مساران تقنيان رئيسيان. من جهة، يُعدّ بروتوكول CDP حجر الزاوية للمتصفحات المبنية على Chromium. ومن جهة أخرى، يُمكّن معيار WebDriver BiDi الجديد من الاتصال ثنائي الاتجاه في الوقت الفعلي، مما يسمح لـ Puppeteer بالعمل بثبات في Firefox، ويزيل قيود الإصدارات التجريبية السابقة.

عند الحديث عن التنفيذ، من الشائع استخدام وضع التشغيل بدون واجهة رسومية ، والذي يسمح للمتصفح بالعمل في الخلفية دون تحميل واجهة رسومية. يُعد هذا مفيدًا للغاية لتوفير الموارد وتسريع العمليات في بيئات البنية التحتية لـ GitHub وبيئات التكامل/التسليم المستمر (CI/CD) أو بيئات الأتمتة المستمرة.

  دليل شامل لتخزين جوجل درايف وإصداراته على نظام التشغيل ChromeOS

التطور الكبير: الدعم الرسمي لمتصفح فايرفوكس

كيفية إجراء اختبارات الويب باستخدام Selenium
مقالة ذات صلة:
كيفية إجراء اختبار الويب باستخدام Selenium خطوة بخطوة

لفترة طويلة، كان برنامج Puppeteer حصريًا لمتصفح Chromium. قامت Mozilla بتطبيق جزء من CDP لمتصفح Firefox، لكنه كان حلاً مؤقتًا تسبب في كثير من الأحيان بمشاكل وارتباك. أما الثورة الحقيقية فجاءت مع تطبيق WebDriver BiDi ، وهو الآن جاهز للاستخدام في بيئات الإنتاج.

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

من المهم الإشارة إلى أنه بالنسبة لأولئك الذين لديهم نصوص CDP القديمة لمتصفح Firefox، فمن الضروري الانتقال إلى WebDriver BiDi ، حيث سيتم إيقاف التوافق القديم نهائيًا بحلول نهاية عام 2024.

مقارنة مع الأدوات الأخرى في القطاع

من الطبيعي أن تشعر بالحيرة عند الاختيار بين Puppeteer وغيرها من الأدوات الرائدة. إذا قارناها بـ Selenium ، فسنجد أن Puppeteer أسهل استخدامًا وأسرع مع متصفح Chrome، بينما يتفوق Selenium في التوافق مع لغات ومتصفحات متعددة بفضل برامج التشغيل.

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

آلة تعيد تصميم نفسها
مقالة ذات صلة:
آلة ذاتية إعادة التصميم: الأتمتة الذكية قيد التنفيذ
  • Puppeteer vs PhantomJS: الأول حديث ويمكن صيانته؛ أما الثاني فهو قديم ولم يعد يُنصح به.
  • محرك الدمى ضد السرو: Puppeteer هي مكتبة عامة الأغراض لأتمتة المتصفح، بينما Cypress هو إطار عمل متخصص في اختبار الواجهة الأمامية.
  • محرك الدمى: إنها نسخة غير رسمية من بايثون. ورغم أنها مفيدة لمن لا يرغبون في استخدام Node.js، إلا أنها عادةً ما تُحدَّث بوتيرة أبطأ من النسخة الأصلية.
  أفضل 7 برامج لتصميم المنازل.

التطبيقات العملية وحالات الاستخدام

نطاق الإمكانيات هائل. في استخراج البيانات من المواقع الديناميكية ، يُعدّ Puppeteer لا يُضاهى لأنه يُعالج جافا سكريبت و AJAX، مما يسمح لك باستخراج المحتوى من تطبيقات الصفحة الواحدة (SPA) التي لا تستطيع مكتبات HTTP البسيطة قراءتها.

بالنسبة للشركات، تُعدّ هذه الأداة بالغة القوة لإنشاء تقارير مرئية ، وفواتير PDF تلقائية، أو التقاط لقطات شاشة لتدقيق تحسين محركات البحث. كما تتيح لك اعتراض طلبات الشبكة لتحليل الاختناقات في أداء تحميل الموقع الإلكتروني.

في مجال الأمن، يمكن استخدامه للتحقق من اكتشاف التهديدات بشكل صحيح عن طريق اعتراض الطلبات، على غرار ما يتم القيام به في برنامج تعليمي كامل لـ Burp Suite لاختبار اختراق الويب ، مما يضمن أن التطبيق ليس فعالًا فحسب، بل قوي أيضًا ضد الهجمات.

نحو الأتمتة الذكية: وكلاء الذكاء الاصطناعي

التكاملات والأتمتة مع برنامج Perplexity Desktop
مقالة ذات صلة:
التكاملات والأتمتة مع برنامج Perplexity Desktop

يتجه التوجه الحالي نحو جعل Puppeteer بمثابة "الجسم" لوكلاء الذكاء الاصطناعي . لم يعد الأمر يقتصر على كتابة نصوص برمجية تعتمد على محددات CSS التي تتعطل عند أول تغيير في التصميم، بل أصبح يتعلق باستخدام رؤية الحاسوب ومعالجة اللغة الطبيعية.

تتيح أدوات مثل Browser-harness لنموذج اللغة (LLM) التعامل مع المتصفح كما لو كان إنسانًا، حيث يحدد الخطوة التالية بناءً على ما يراه على الشاشة. وهذا أمر بالغ الأهمية للمهام المفتوحة، مثل إدارة نظام خلفي معقد أو ملء نماذج متغيرة باستمرار في برمجيات SaaS .

لمنع أنظمة مكافحة الروبوتات من اكتشاف هذه العمليات الآلية، يتم استخدام تقنيات محاكاة السلوك ، ومحاكاة حركات الماوس غير المنتظمة وبصمات TLS الدوارة، مما يجعل الروبوت غير قابل للتمييز عن المستخدم الحقيقي.

دليل تنفيذي تقني سريع

للبدء، أول شيء يجب فعله هو تثبيت Node.js وتشغيله npm i puppeteerإذا كنت تبحث عن حل أخف لبيئات الحوسبة السحابية مثل AWS Lambda، فإن الخيار هو جوهر محرك الدمىوالذي لا يقوم بتنزيل المتصفح الافتراضي ويسمح بالاتصال بمواقع خارجية.

  Microsoft 365 مقابل Office لمرة واحدة: شرح مفصل للاختلافات والإيجابيات والسلبيات

تتضمن العملية الأساسية تشغيل المتصفح باستخدام launch()افتح علامة تبويب باستخدام newPage() ثم انتقل إلى عنوان URL المطلوب باستخدام goto()للتفاعل، نستخدم أساليب مثل click() o type()الحرص دائماً على إنهاء العملية بـ browser.close() إلى لا تترك العمليات المعلقة يستهلك ذاكرة الوصول العشوائي (RAM).

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

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

إن القدرة على التحكم في متصفحي Chromium و Firefox من خلال واجهة برمجة تطبيقات موحدة، بالإضافة إلى ظهور وكلاء الذكاء الاصطناعي ومعيار WebDriver BiDi، تجعل هذا النظام البيئي الأداة المثالية لأي مطور يسعى إلى الكفاءة والاستقرار والقوة على الويب الحديث.