المشروع عبارة عن سكربت Python يستخدم Selenium لسحب آخر عملياتي المالية التي قمت بها من بنك التنمية المحلية الجزائري (BDL) وإدراجها (إن لم تكن موجودة بالفعل) في تطبيق Toshl Finance الذي يستخدم لتتبع المداخيل، المصاريف والميزانيات على المستوى الشخصي.
هذا البنك لا يوفر أية واجهة برمجة تطبيقات (ِAPI)، لذلك لا توجد طريقة للحصول على البيانات سوى محاكاة المستخدم. صفحة تسجيل الدخول محمية بنظام حماية متوسط ضد برامج الأتمتة، وفي حالة اكتشاف أنك تستخدم برنامجا فسيقول دائما أن المستخدم أو كلمة السر خاطئة (حتى لو كانت هذه المعلومات صحيحة). لذلك أنشأت البرنامج بطريقة يقوم بفتح نافذة المتصفح، ثم يدخل اسم المستخدم بنفس الطريقة التي يضغط بها المستعمل العادي، ثم يقوم بالضغط على الأزرار الخاصة بإدخال كلمة السر (ولا يمكن إدخالها بطريقة أخرى) وبعد ذلك يضغط على زر الإرسال. البرنامج يبقى ينتظر حتى يتم الصفحة التالية بعد نجاح الدخول، ثم يسحب العمليات الأخيرة المعروضة في الصفحة الرئيسية ويبقي فقط تلك الموجودة ضمن ال30 يوما الأخيرة في ذاكرته.
البرنامج يحضر عمليات ال30 يوما الأخيرة المسجلة في برنامج Toshl ويقارن ليرى هل هناك عمليات جديدة غير مسجلة. إذا كان الأمر كذلك، فسيقوم بإدراجها في Toshl، وإلا فلن يفعل شيئا بعد ذلك. سحب وإنشاء العمليات المصرفية في برنامج Toshl تتم عبر استخدام واجهة برمجة التطبيقات الخاصة بهم ولا تحتاج إلى محاكاة المستخدم مثل البنك.
هذا البرنامج يتم تشغيله كل يوم في وقت محدد على خادم بالاعتماد على خدمة GitHub Actions، حيث يقوم بهذه العملية بشكل تلقائي كل يوم بدون أي مشاكل. حتى في بعض الحالات الاستثنائية التي لا يتم تحميل موقع البنك فيها بشكل صحيح ويحصل خطأ في البرنامج، يتم إعادة المحاولة عدة مرات حتى تنجح.
اسم المستقل | حمزة ع. |
عدد الإعجابات | 0 |
عدد المشاهدات | 39 |
تاريخ الإضافة | |
تاريخ الإنجاز |