كيفية بناء نظام مراقبة تلقائي وكاشطات ويب باستخدام مهام مجدولة في Apidog

Ashley Innocent

Ashley Innocent

15 أغسطس 2025

كيفية بناء نظام مراقبة تلقائي وكاشطات ويب باستخدام مهام مجدولة في Apidog
💡
اختبر قوة اختبار ومراقبة واجهة برمجة التطبيقات (API) المؤتمتة مع Apidog - منصة تطوير واجهة برمجة التطبيقات الشاملة التي تبسط سير عملك من التصميم إلى النشر. باستخدام ميزة المهام المجدولة المتقدمة في Apidog، يمكنك أتمتة سيناريوهات المراقبة وجمع البيانات المعقدة دون كتابة سطر واحد من التعليمات البرمجية.
زر

ماذا يمكن أن تفعله المهام المجدولة؟

هناك الكثير من الأتمتة التي يمكنها إنجازها. دعني أولاً أسرد بعض حالات الاستخدام الشائعة:

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

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

ولكن الآن، مع ميزة "المهام المجدولة" في Apidog، أصبحت هذه السيناريوهات المؤتمتة سهلة التعامل بشكل أساسي.

في Apidog، يمكن تقسيم تنفيذ مهام التوقيت المؤتمتة مثل برامج الزحف والمراقبة تقريباً إلى الخطوات التالية:

  1. الحصول على API
  2. تحليل البيانات المعادة
  3. تنسيق سيناريوهات الاختبار
  4. تعيين المهام المجدولة

دعنا نشرح أدناه كيفية العمل في Apidog بناءً على هذه الخطوات. مهما كانت احتياجاتك، يمكن أن يمنحك ما يلي بعض الإلهام.

الحصول على API

إذا كنت ترغب في مراقبة ديناميكيات وسائل التواصل الاجتماعي لمنصات معينة، أو استخلاص البيانات من منصات معينة، فإن الخطوة الأولى هي الحصول على واجهة برمجة التطبيقات (API) التي تنفذ هذه العملية. لذا يطرح السؤال، أين يمكنني العثور على واجهات برمجة التطبيقات هذه؟

يمكنك الذهاب إلى "المنصة المفتوحة" الرسمية لمعرفة ما إذا كانت هناك أي واجهات مفتوحة ذات صلة. هذه هي الطريقة الأكثر رسمية. بشكل عام، الصفحات التي يمكن عرضها في الواجهة الأمامية ستحتوي على واجهات برمجة تطبيقات (APIs) مقابلة مقدمة.

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

يجب حمل الرمز (Token) عند طلب واجهة برمجة تطبيقات (API) مفتوحة، ويمكن إنشاؤه بشكل عام في خلفية المطور.

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

تحليل البيانات المعادة

الآن بعد أن عرفنا كيفية الحصول على واجهة برمجة التطبيقات (API) ذات الصلة، فإن الخطوة التالية هي تحليل البيانات المعادة ومعرفة المعلومات المفيدة الموجودة فيها. بشكل عام، تعيد واجهات برمجة التطبيقات هذه البيانات بتنسيق JSON، ونحن بحاجة إلى النظر بعناية في ما يمثله كل حقل.

على سبيل المثال، يمكن للوصول إلى واجهة برمجة التطبيقات (API) المفتوحة أدناه الحصول على معلومات المستودع لمشاريع مفتوحة المصدر محددة على GitHub:

curl -L \
   -H "Accept: application/vnd.github+json" \
   -H "Authorization: Bearer <YOUR-TOKEN>" \
   -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/{owner}/{repo}

حيث {owner} هو اسم المستخدم أو اسم المؤسسة لمالك المستودع و {repo} هو اسم المستودع. للعثور على هذه المعلومات، ما عليك سوى النظر إلى عنوان URL لمستودع GitHub:

  1. افتح صفحة مشروع GitHub التي تريد عرضها
  2. ألق نظرة على عنوان URL في شريط عنوان المتصفح، وهو بهذا التنسيق: https://github.com/{owner}/{repo}
  3. الجزء بعد الشرطة المائلة الأولى في عنوان URL هو {owner}، والجزء بعد الشرطة المائلة الثانية هو {repo}

في Apidog، يمكنك نسخ محتوى أمر cURL أعلاه مباشرة لإنشاء طلب API جديد، أو يمكنك تعيين طريقة الطلب وعنوان URL يدوياً أثناء إضافة الرمز (Token) إلى رأس الطلب.

بمجرد إرسال طلب، تحصل على استجابة JSON كهذه:

{
  "id": 468576060,
  "name": "openai-cookbook",
  "full_name": "openai/openai-cookbook",
  "stargazers_count": 59366,
  ...
}

بعد الحصول على بيانات JSON الأولية، الخطوة التالية هي معالجة البيانات. في Apidog، يمكننا استخدام تعبيرات JSONPath أو كتابة نصوص برمجية بسيطة لتحقيق ذلك.

على سبيل المثال، لاستخدام JSONPath لاستخراج حقول محددة، يمكنك إضافة عملية "استخراج المتغيرات" (Extract Variables) في "المعالجات اللاحقة" (Post-processors) وملء التعبير المقابل. إذا لم تكن على دراية بكيفية كتابة التعبيرات، يمكنك النقر على الأيقونة في مربع إدخال "تعبير JSONPath" (JSONPath Expression) لاستخدام أداة استخراج JSONPath كمساعد.

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

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

في Apidog، يمكنك إنشاء "نص برمجي مخصص" (Custom Script) جديد في "المعالجات اللاحقة" (Post-processors) واستخدام طريقة fox.liveRequire للإشارة إلى مكتبة htmlparser2 لمعالجة بيانات تنسيق HTML.

على سبيل المثال، إذا كنت ترغب في استخراج جميع وسوم <article> ومحتواها الداخلي من HTML وتحويلها إلى تنسيق نصي، يمكنك كتابة نص برمجي مثل هذا:

fox.liveRequire("htmlparser2", (htmlparser2) => {
    
    console.log(htmlparser2);

    // HTML string (generally read from interface return data)
    const htmlString = `
    <html>
        <body>
        <article>
            <h1>Title</h1>
            <p>This is a paragraph.</p>
            <p>Another piece of text.</p>
        </article>
        <footer>Footer content</footer>
        </body>
    </html>
    `;

    // Parse document
    const document = htmlparser2.parseDocument(htmlString);

    // Use DomUtils to find <article> tags
    const article = htmlparser2.DomUtils.findOne(elem => elem.name === "article", document.children);

    // Convert content in <article> to complete HTML fragment
    if (article) {
        const articleHTML = htmlparser2.DomUtils.getOuterHTML(article);
        console.log(articleHTML);
    } else {
        console.log("No <article> tag found.");
    }
})

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

تنسيق سيناريوهات الاختبار

مع جاهزية واجهات برمجة التطبيقات (APIs) وتحليل البيانات، فإن الخطوة التالية هي تنسيق سيناريوهات الاختبار في الاختبار الآلي.

في Apidog، يمكنك إنشاء سيناريو اختبار في الاختبار الآلي واستيراد طلبات API المعدة إليه.

إذا كنت بحاجة إلى إدراج بيانات معالجة في قاعدة بيانات، يمكنك إنشاء "عملية قاعدة بيانات" (Database Operation) جديدة في "المعالجات اللاحقة" (Post-processors) وإدراج البيانات المعالجة في قاعدة البيانات عبر أوامر SQL. تدعم أوامر SQL قراءة القيم من متغيرات البيئة، على سبيل المثال:

INSERT INTO monitoring_data (project_name, star_count, updated_time) 
VALUES ('{{project_name}}', {{star_count}}, NOW())

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

على سبيل المثال، إذا أردت إرسال البيانات المعالجة إلى Feishu (Lark)، يمكنني إضافة خطوة اختبار جديدة في سيناريو الاختبار واستخدام واجهة برمجة تطبيقات Webhook التي توفرها Feishu لإرسال الرسائل. خلال هذه العملية، يمكنك قراءة نتائج تنفيذ الخطوات السابقة من خلال "القيم الديناميكية" (Dynamic Values)، مما يجعل معالجة البيانات أكثر ملاءمة.

إذا كنت بحاجة إلى تكرار مجموعة من البيانات، أو جعل الحقول المعادة تفي بشروط محددة معينة قبل متابعة التنفيذ، يمكنك أيضاً إضافة "شروط التحكم في التدفق" (Flow Control Conditions) إلى خطوات الاختبار.

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

تعيين المهام المجدولة

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

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

في اختبارات Apidog المؤتمتة، ابحث عن وحدة "المهام المجدولة" (Scheduled Tasks)، ثم أنشئ مهمة مجدولة جديدة. في واجهة التكوين، سترى الخيارات التالية:

بعد الإعداد والحفظ، سيتم تشغيل سيناريوهات الاختبار ضمن هذه المهمة المجدولة بانتظام وفقاً لدورة التنفيذ المحددة، وقد حققنا بذلك هدف المراقبة المجدولة المؤتمتة.

إضافات

في قسم "الحصول على API" أعلاه، بالإضافة إلى العثور على واجهات برمجة التطبيقات (APIs) على المنصات المفتوحة الرسمية، يمكنك أيضاً التقاط الحزم مباشرة في المتصفح.

إليك مثال:

لنفترض أننا نريد مراقبة الموضوعات الشائعة على Weibo. يمكننا فتح صفحة Weibo الشائعة في المتصفح، ثم الضغط على F12 أو Ctrl + Shift + I لفتح أدوات المطور، والتبديل إلى علامة التبويب Network. قم بتحديث الصفحة، وسترى مجموعة من الطلبات. ابحث عن الطلب الذي يحصل على بيانات الموضوعات الشائعة، وانقر بزر الماوس الأيمن وانسخه كـ cURL. ثم، افتح Apidog، أنشئ واجهة جديدة، والصق cURL الذي نسخته للتو في مربع الإدخال. سيقوم Apidog بتحليله تلقائياً لنا - مريح للغاية!

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

الخاتمة

هذا يختتم محتوى هذه المقالة. آمل أن يمنحك بعض الإلهام لاستخدام ميزة المهام المجدولة في Apidog لتنفيذ بعض العمليات المؤتمتة المثيرة للاهتمام. إذا كان لديك أي أفكار أو ممارسات رائعة، فلا تتردد في مشاركتها في مجتمع مستخدمي Apidog. سواء كانت نصائح استخدام شخصية أو أفكار لحل المشكلات الصعبة - كل شيء مرحب به!

زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات