كيفية بناء بوت بسيط لتسجيل الدخول التلقائي مع بيثون والسيلينيوم
التشغيل الآلي هي بلا شك واحدة من أكثر المهارات المطلوبة للمبرمج. عادة ما تستخدم الأتمتة للمهام التي هي المتكررة ، مملة ، تستغرق وقتا طويلا, او غير ذلك غير فعال دون استخدام البرنامج النصي.
مع أتمتة الويب, يمكنك بسهولة إنشاء روبوت لأداء مهام مختلفة على شبكة الإنترنت ، على سبيل المثال لمراقبة أسعار الفنادق المتنافسة عبر الإنترنت وتحديد أفضل الأسعار.
شخصيا ، لقد وجدت دائما تسجيل الدخول إلى بريدي الإلكتروني متكررة إلى حد ما ومملة ، وذلك من أجل مثال بسيط للحصول على يا رفاق بدأت مع أتمتة الويب, دعنا ننفذ النصي بيثون الآلي إلى تسجيل الدخول بنقرة واحدة إلى حساب Gmail.
التثبيت والإعداد
في هذا البرنامج التعليمي سوف نستخدم الأدوات التالية:
- لغة برمجة بايثون
- متصفح جوجل كروم
- مجموعة أدوات أتمتة متصفح السيلينيوم
- برنامج تشغيل Chrome Driver على الويب لبرنامج Chrome
بالنسبة لبرنامجنا ، سنستخدم لغة برمجة Python ، على وجه التحديد الإصدار 2.7.11. من الأهمية بمكان أن نقوم بتثبيت أ نسخة جديدة إلى حد ما من بيثون 2 لأنه يأتي مع PIP, مما سيتيح لنا تثبيت حزم وإطارات الجهات الخارجية التي سنحتاجها لأتمتة برامجنا النصية.
بمجرد تثبيت, قم بإعادة تشغيل جهاز الحاسوب الخاص بك لتصبح التغييرات نافذة المفعول. استخدم الأمر نقطة تثبيت السيلينيوم
لإضافة مجموعة أدوات أتمتة الويب السيلينيوم لبيثون. سيسمح لنا السيلينيوم بالتمرير برمجياً ونسخ النص وملء النماذج والنقر على الأزرار.
وأخيرا تحميل السيلينيوم كروم سائق قابل للتنفيذ, والتي سوف افتح Google Chrome حسب الحاجة لأداء المهام الآلية لدينا. يعد برنامج التشغيل Chrome مجرد وسيلة لفتح Google Chrome (والذي يجب تثبيته بالفعل) الوصول إلى عمليات المتصفح القياسية برمجيا.
ما عليك سوى تنزيل أحدث ملف مضغوط من هنا ، واستخراج الملف chromedriver.exe
قابل للتنفيذ ، ووضع الملف القابل للتنفيذ في أي دليل. تأكد من تدوين مكان تنفيذك ، لأن سنحتاج إليها بمجرد أن نبدأ.
بدء البرنامج
كما ذكرنا سابقًا ، سنستخدم السيلينيوم أتمتة الويب الإطار لكي تسجيل الدخول برمجيا. أول أمر في العمل هو استيراد كل وحدة سنحتاج من مكتبة Selenium Python التي قمنا بتثبيتها بواسطة برنامج PIP.
دعنا نفتح IDLE أو محرر رمز آخر, إنشاء ملف Python جديد مع .السنة التحضيرية
التمديد ، و استيراد الوحدات التالية:
من selenium import webdriver من selenium.webdriver.common.by import بواسطة من selenium.webdriver.support.ui قم باستيراد WebDriverWait من selenium.webdriver.support يمكنك استيراد import expected_conditions كـ EC
بعد ذلك ، سنقوم بذلك إنشاء سلسلتين التي تمثل لدينا اسم المستخدم و كلمة السر لحساب البريد الإلكتروني. انتبه إلى الكتابة بالأحرف الكبيرة ، خاصة في سلسلة كلمة المرور الخاصة بك.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
الآن بعد أن تم إعداد كل شيء من أجل بدء عملية تسجيل الدخول ، نحتاج إلى توجيه نافذة متصفح فعليًا افتح Google Chrome, و انتقل إلى صفحة تسجيل الدخول إلى Gmail.
إذا لم تكن قد قمت بذلك بالفعل ، فتأكد من أن برنامج Python النصي هو المحفوظة في نفس الموقع مثل chromedriver.exe
تنفيذ نحن استخراجها في وقت سابق.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin؟ "service = mail & Continue = https: //mail.google" .com / mail / # identifier'))
العثور على عنصر لدينا
لقد نجحنا في فتح المتصفح لفتح Gmail ، لكننا بحاجة الآن إلى ذلك العثور على حقول الإدخال على صفحة الويب ، والتي يمكننا أدخل اسم المستخدم وكلمة المرور الخاصة بنا.
يمكننا القيام بذلك بسهولة باستخدام أدوات مطوري Chrome المدمجة. نحتاج فقط إلى النقر بزر الماوس الأيمن على حقول الإدخال ، وتحديد “فحص” قائمة طعام.
الآن الأمر مجرد مسألة باستخدام HTML هوية شخصية
سمات للعثور على العناصر برمجيا.
في الكود أدناه ، نحن ببساطة البحث عن حقل اسم المستخدم هوية شخصية
, و ملء ذلك مع النص المطلوب. ثم نحن البحث عن زر التالي التي تمر بمرحلة انتقالية مع الرسوم المتحركة السريعة قبل مطالبتنا بكلمة المرور.
ال send_keys ()
و انقر()
الأوامر تفعل بالضبط كما توحي أسمائهم - send_keys ()
يحاكي keypresses في العنصر المطلوب ، و انقر()
يحاكي النقر بالماوس.
# املأ اسم المستخدم واضغط على الزر التالي اسم المستخدم = browser.find_element_by_id ('Email') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
في وسعنا افعل نفس الشيء لحقل إدخال كلمة المرور ، وكذلك لزر تسجيل الدخول. ومع ذلك ، يظهر هذان العنصرين على الصفحة فقط بعد انتقال الرسوم المتحركة.
قال ذلك ، نحن بحاجة إلى البرنامج ل انتظر بضع ثوان قبل استئناف البحث عن العناصر. بالنسبة للجزء الأكبر ، هذه المرحلة من الكود لا تختلف عن المرحلة السابقة. لدينا ببساطة لتوجيه المتصفح ل انتظر مدة أقصاها 10 ثواني قبل تحديد موقع إدخال كلمة المرور.
# انتظر الانتقال ، ثم تابع لملء عناصر كلمة المرور = WebDriverWait (المتصفح ، 10) .until (EC.presence_of_element_located ((By.ID ، 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id ('signIn' ) signInButton.click ()
الكلمات الأخيرة
لقد انتهيت للتو خلق روبوت التي تزور صفحة ويب ، وتقوم بإدخال اسم المستخدم وكلمة المرور الخاصة بك ، وتسجيل الدخول بنجاح, أتمتة العملية برمتها بنقرة واحدة. أعلم أن هذه كانت مظاهرة بسيطة ، لكن الاحتمالات لا حصر لها.
في نفس المذكرة, كن حذرا لكيفية استخدام هذه المهارة. يستخدم بعض الأشخاص برامج نصية وبرامج نصية آلية للدخول في اليانصيب آلاف المرات ، متجاهلين تمامًا البنود والشروط. آخرون استخدامها لنوايا أكثر خبيثة.
فقط تأكد من استخدام الأتمتة بشكل هادف وبعناية ، لأنه حقًا تشتد الحاجة إليها في مجتمع البرمجة!
ملحوظة المحرر: هذا هو وظيفة مكتوبة ل Hongkiat.com من قبل مالك الإبراهيمي. مالك هو مطور يقع في منطقة بوسطن الكبرى ، ويحب الطعام وكرة القدم والبرمجة (لغة بيثون المفضلة).
- تحميل المصدر