الدرس الأول من كيفية التعامل مع صفحات الويب في لغة البرمجة python

يُقدم لكم هذه الدروس: الأستاذ إبرهيم حمادة جزاه الله خيرا.

الدرس الأول: المُتصفح و الخادم

client and server إذا أردنا أن نطَّلع على صفحة مِن صفحات الوب ماذا نفعل عادةً نفتح المتصفح, و في مسطرة العنوان, address bar نكتب عنوان الصفحة التي نريد أن نراها, و لنفترض مثلا أنها صفحة جوجل للبحث: www.google.com ثُمَّ نضغط إنتر. هكذا نكون قد عمِلنا request أو طلب لصفحة جوجل. هذا الطلب يذهب إلى خادم جوجل خادم جوجل يقرأ الطلب, و يُرسل لنا الصفحة المطلوبة. الرد على الطلب الذي أرسلناه أو ال request, يُسمى response أو رد. إذان, الخادم يعمل response و يُرسل لنا الصفحة. عندما يُرسل الصفحة هو يُرسلها بصيغة html. المتصفح بعدها يستلم الرد ثُمَّ يُظهر لنا صفحة جوجل بهذا الشكل الجميل. بين المتصفح و الخادم, طلب الصفحة, و الرد على الطلب يتم بلغة جافاسكرِيبت javascript. هل يُمكن أن يحدث ذلك بدون المتصفح؟ يعني إرسال الطلب و الرد عليه بالطبع يُمكن ذلك بواسطة برامج أخرى, بينها بايثون --- معلومات أخرى تُرسل مع الطلب, و معلومات أخرى تُرسل مع الرد و هي: headers هذه المعلومات نحن لا نلاحظها في حالة المتصفح. لكن هي موجودة و مُتبادلة بين الذي أرسل الطلب, سواء كان متصفح أو برنامج و بين الخادم المعلومات التي تُرسل مع الطلب, أي مع عنوان الصفحة www.google.com هي request headers, أو رأس الطلب و تتضمن عدة أشياء , و مِن بينها user-agent: ... يعني مَن الذي أرسل الطلب في حالة المتصفح يُمكن أن يكون: 'firefox مِن وندوس 64bit مثلا و في حالة البرنامج يُمكن أن يكون: python أو java أو غيرها و المعلومات التي تأتي مع الرد, يُمكن أن تحتوي على معلومات عديدة منها Content-Length: أي حجم المحتوى المُرسل Content-Type: أي نوع المُحتوى, مثلا نص أو صورة أو xml أو json و غيرها و معلومات أخرى عديدة. و يجدر ذكره, أنَّ مواقع و خوادم كثيرة لا تُحب أن يتصفحها, أو يطلب الصفحة منها برنامج مثل بايثون أو غيره, بل تُفضل أن تتعامل مع المتصفحات. لذلك عندما تقرأ أنَّ ال user-agent الذي يطلب الصفحة هو برنامج, فإنها بعد وقت تمنعه و تحجب الصفحة عنه. لهذا عند طلب الصفحة بواسطة بايثون, فإننا أغلب الأوقات نُضيف على الطلب user-agent وهمي أو مُزيف, فنقول مثلا أنَّ الذي يطلب الصفحة هو فيرفوكس أو كروم أو غير ذلك. و بهذه الطريقة نتغلب على حجب الصفحة مِن قِبَل بعض المواقع و الخوادم البخيلة, و التي لا تمنح صفحاتها للجميع. --- http protocole بروتوكول نقل النص التشعبي بروتوكول http, هي الطريقة التي يتفاهم بها المتصفح و الخادم, عند إرسال الطلب, و استلام الرد. هناك طبعا بروتوكولات أخرى كثيرة مثل fttp لنقف الملفات أو smtp للبريد, و غيرها. أما http, فهو البروتوكول المُستخدم في طلب صفحة الوب و استلام الرد. وإلى لقاءٍ آخر. لا تنسوْا ذكر الله.

تعليقات

إرسال تعليق

ما من كاتبٍ سيَبلى
ويُبقي الدهرُ ما كتبت يَداه
فلا تكتُبَنَّ بيديكَ غيرَ شيءٍ
يسُرُكَ في القيامةِ أن تراه.