تسجيل الدخول إلى مواقع الويب باستخدام بايثون

Logging Into Websites With Python



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

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







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



يمكن أن يتم ذلك مع الطلبات ومكتبات BeautifulSoup Python. إلى جانب مكتبات Python هذه ، ستحتاج إلى متصفح جيد مثل Google Chrome أو Mozilla Firefox لأنها ستكون مهمة للتحليل الأولي قبل كتابة التعليمات البرمجية.



يمكن تثبيت مكتبات الطلبات و BeautifulSoup باستخدام الأمر pip من المحطة كما هو موضح أدناه:





طلبات تثبيت النقطة
نقطة تثبيت BeautifulSoup4

لتأكيد نجاح التثبيت ، قم بتنشيط غلاف Python التفاعلي الذي يتم عن طريق الكتابة الثعبان في المحطة.

ثم قم باستيراد كلتا المكتبتين:



يستوردالطلبات
من عندبكالوريوس 4يستوردشوربة جميلة

يكون الاستيراد ناجحًا إذا لم تكن هناك أخطاء.

العملية

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

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

عندما تحاول فتح موقع ويب من خلال الرابط الخاص به ، فأنت تقدم طلبًا إلى جانب الخادم لجلب ملفات HTML والملفات الثابتة الأخرى مثل CSS و JavaScript. يُعرف هذا الطلب باسم طلب GET. ومع ذلك ، عندما تقوم بملء نموذج ، وتحميل ملف وسائط أو مستند ، وإنشاء منشور والنقر على زر إرسال ، فأنت ترسل المعلومات إلى جانب الخادم. يُعرف هذا الطلب باسم طلب POST.

سيكون فهم هذين المفهومين مهمًا عند كتابة السيناريو الخاص بنا.

تفقد الموقع

لممارسة مفاهيم هذه المقالة ، سنستخدم ملف اقتباسات لكشط موقع الكتروني.

يتطلب تسجيل الدخول إلى مواقع الويب معلومات مثل اسم المستخدم وكلمة المرور.

ومع ذلك ، نظرًا لاستخدام هذا الموقع كدليل على المفهوم ، فكل شيء مباح. لذلك سوف نستخدم مشرف كاسم مستخدم و 12345 ككلمة المرور.

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

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

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

لذلك ، إذا لم تتم إضافة هذه الرموز المميزة إلى طلب POST ، فسيفشل تسجيل الدخول. فكيف نعرف عن هذه المعلمات؟

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

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

إليك ما سنفعله بعد ذلك ، أثناء فتح علامة التبويب 'الشبكة'. أدخل تفاصيل تسجيل الدخول وحاول تسجيل الدخول ، يجب أن يكون أول طلب تراه هو طلب POST.

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

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

الرمز

أولاً ، نحتاج إلى استخدام الطلبات و BeautifulSoup للوصول إلى محتوى الصفحة في صفحة تسجيل الدخول.

من عندالطلباتيستوردحصة
من عندبكالوريوس 4يستوردشوربة جميلةكمابكالوريوس

معحصة() كماس:
موقع =س.احصل على('http://quotes.toscrape.com/login')
مطبعة(موقع.المحتوى)

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

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

من عندالطلباتيستوردحصة
من عندبكالوريوس 4يستوردشوربة جميلةكمابكالوريوس

معحصة() كماس:
موقع =س.احصل على('http://quotes.toscrape.com/login')
bs_content=بكالوريوس(موقع.المحتوىو 'html.parser')
رمز =bs_content.تجد('إدخال'و {'اسم':'csrf_token'})['القيمة']
login_data= {'اسم االمستخدم':'مشرف'و'كلمه السر':'12345'و 'csrf_token':رمز}
س.بريد('http://quotes.toscrape.com/login'وlogin_data)
الصفحة الرئيسية=س.احصل على('http://quotes.toscrape.com')
مطبعة(الصفحة الرئيسية.المحتوى)

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

دعونا نلقي نظرة على كل سطر من التعليمات البرمجية.

من عندالطلباتيستوردحصة
من عندبكالوريوس 4يستوردشوربة جميلةكمابكالوريوس

تُستخدم أسطر الكود أعلاه لاستيراد كائن Session من مكتبة الطلبات وكائن BeautifulSoup من مكتبة bs4 باستخدام اسم مستعار لـ بكالوريوس .

معحصة() كماس:

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

bs_content=بكالوريوس(موقع.المحتوىو 'html.parser')
رمز =bs_content.تجد('إدخال'و {'اسم':'csrf_token'})['القيمة']

يستخدم هذا الرمز هنا مكتبة BeautifulSoup لذا فإن ملف csrf_token يمكن استخراجه من صفحة الويب ثم تعيينه إلى متغير الرمز المميز. يمكنك التعرف على كيفية استخراج البيانات من العقد باستخدام BeautifulSoup.

login_data= {'اسم االمستخدم':'مشرف'و'كلمه السر':'12345'و 'csrf_token':رمز}
س.بريد('http://quotes.toscrape.com/login'وlogin_data)

يُنشئ الرمز هنا قاموسًا للمعلمات التي سيتم استخدامها لتسجيل الدخول. مفاتيح القواميس هي اسم سمات علامات الإدخال والقيم هي القيمة سمات علامات الإدخال.

ال بريد يتم استخدام الطريقة لإرسال طلب نشر مع المعلمات وتسجيل الدخول إلينا.

الصفحة الرئيسية=س.احصل على('http://quotes.toscrape.com')
مطبعة(الصفحة الرئيسية.المحتوى)

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

استنتاج

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

أهم شيء في كل هذا هو معرفة HTML والطلبات و BeautifulSoup والقدرة على فهم المعلومات التي يتم الحصول عليها من علامة التبويب 'الشبكة' في أدوات مطور متصفح الويب.