مكتبة urllib و التعامل معها الجزء الأول في بايثون Python الدرس |24| - Programmer Tech

Programmer Tech

موقع تعليم مجاني يهتم بتعلم البرمجة و علوم الكمبيوتر, أمن المعلومات, القرصنة الأخلاقية, سكربتات

إعلان اعلى المقالة

الخميس، 14 مايو 2020

مكتبة urllib و التعامل معها الجزء الأول في بايثون Python الدرس |24|


نتكلم اليوم عن المكتبات الذي تُستخدم للتعامل مع الويب التي نستفيد منها في اختبار الأختراق penetration testing, توجد الكثير من المكتبات التي نتعامل بها مع الويب لكن سوف نشرح اشهرها في عدة دروس قادمة.

من هذه المكتبات :
urllib, requests, selenium, BeautifulSoup

لكن بدرسنا هذا سوف نتكلم عن اول هذه المكتبات و هي urllib سوف نقسم هذه المكتبة على اكثر من درس للأستيعاب اكثر.

urllib Library

يقصد بهذا مثلاً نتكلم مع الطلبات الذي نتعامل بها مع الويب مثل get request, مثل طلب معلومات من موقع معيّن website او اي شي خاص داخل الويب.
>>> import urllib.request
>>> url = "https://www.programmer-tech.com"
>>> request = urllib.request.urlopen(url)
>>> request.read()[0:40]
b"<!DOCTYPE html>\n<html class='v2' dir='rt"
>>> request = urllib.request.urlopen(url)
>>> request.read()[0:100]
b"<!DOCTYPE html>\n<html class='v2' dir='rtl' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www."
>>> request = urllib.request.urlopen(url)
>>> len(request.read())
254513


شرح ما سبق

في البداية استدعينا المكتبة المطلوبة request و ثم استدعينا رابط موقعنا عبر url و قرأنا من السورس كود من 0 حتى 40 من الاندكس و بعده قرأنا من 0 حتى 100 و من ثم قرأنا اللينس len الخاص بسورس الموقع.

urllib.error

نستخدم هذا في exception ونستخدمه في حال كتابتنا لكود ضخم إذا انوجد به أي خطأ يتم ارجاعه لنا بطريقة سهله و معرفة مكان الخطاً و يوجد نوعين من الاخطاء error و هي URLEerror و HTTPError لذلك نستدعي مكتبة urllib.error و الفرق بين النوعين هو في URLEerror هو اخطاء الذي تظهر مثل 403 و 404 و غيرها, أما HTTPError في حال كتبنا نحن الرابط بشكل خاطئ او غير موجود ينبهنا بهذا.

import urllib.request
import urllib.error
try:
       url = "https://www.yahoo.com/"
       response = urllib.request.urlopen(url)
       print(response.read(100))
except urllib.error.URLError as e:
       print(e)
except urllib.error.HTTPError as e:
       print(e.code)
       print(e.url)
       print(e.reasone)

شرح ما سبق

في البداية عملنا import استدعاء للمكتبات urllib.request و urllib.error و بعدها قلنا له عبر try افتح لنا موقع ياهو و معنى الاخطاء ذكرناها سابقا و خزنناها في متغير و طبعناها عبر دالة الطبع print.

HTTP header

لمعرفة الهيدرز الخاص بموقع ما

>>> import urllib.request
>>> re = urllib.request.urlopen("https://www.google.com")
>>> re.getheaders()

شرح الكود

عند الضغط على زر Enter سوف يعرض لنا الهيدرز header كما بالصورة


ستكون كل هذه بيانات النتيجة مهمة و منها الكوكيز و الدومين ....الخ

لعرض الكوكيز هنا نستخدم الامر re.getheader('Set-Cookie').

>>> re.getheader('Set-Cookie')
'1P_JAR=2020-05-12-16; expires=Thu, 11-Jun-2020 16:07:30 GMT; path=/; domain=.google.com; Secure, NID=204=eB_QyCFSqN5tpl56kzfPQBc5LCJ37WqvYqUBeREGbepvZy0xjNmmu8OuvbOKMzHTyTcy0fwmuIWYflDL10X_RDtjT3n-EWFwNb6Zl1YRLOYOC_yZyj0Hyf0tViF3-2tSK-t-vdpww9zy5TfxsY6sXGvfmh_CEaorInSz1rGM34A; expires=Wed, 11-Nov-2020 16:07:30 GMT; path=/; domain=.google.com; HttpOnly'
>>> 

send requests

يلزمنا هنا فقط request لكن سنعدل قليلا بها و نستخدم User-Agent هي المتصفحات الذي ندخل بها اي متصفح بايثون لكن نحن نريد ان نستخدم موثوق مثل فيرفوكس سنستخدم User-Agent و نغيره.

>>> import urllib.request
>>> request = urllib.request.Request("https://www.google.com/",headers={'User-Agent':'Mozilla/5.0'})
>>> request.header_items()
[('User-agent', 'Mozilla/5.0')]
>>>

لتحميل كتاب بصفحات قليلة يوضح لنا هذا الدرس بشكل افضل مع امثلة اكثر اضغط على صورة التحميل الآتية:

http://www.mediafire.com/file/6si7gnotwtzf8ni/urllibp1.pdf/file


قناتنا التلغرام
https://t.me/Programmer_Tech
المدونة
https://www.programmer-tech.com
صفحة الفيسبوك
https://www.facebook.com/ProgrammerTech.net
قناة اليوتيوب 1:
https://www.youtube.com/ahmadkaissar
قناة اليوتيوب 2:
https://www.youtube.com/MuhammadAlush0997

ليست هناك تعليقات:

إرسال تعليق

facebook

تسميات

تواصل معنا

Translate

أخر الافكار

من انا

authorمبرمجين ويب و محبين للتقنية و الشبكات و امن المعلومات و سوف نقدم لكم الافضل إن شاء الله
أعرف المزيد ←

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *

اقسام