recent
أخبار ساخنة

مكتبة urllib و التعامل معها مع امثلة في بايثون Python الدرس |25|

الصفحة الرئيسية
تعريف بمكتبة urllib بايثون

تحليل تشفير عناوين url عبر مكتبة urllib

تعني عمل encode للـ url لدينا و هذا معروف لكل شخص يعمل في مجال الويب أن url في المتصفح يحصل به نوع من انواع encode بحيب المتصفح يستطيع قراءته.

مثل نريد عمل بحث في المتصفح عن كلمة Muhammad Alush.

البحث عن كلمة Muhammad Alush

سوف نلاحظ انه اعطانا البيانات كما يلي q=Muhammad+Alush نلاحظ وضع اشارة + بين الكلمتين و هذا يدل أن الرابط حلصت عليه عملية Encoding.

لعمل Encoding في بايثون للمثال السابق يكون كالتالي

>>> import urllib.request
>>> import urllib.parse
>>> data = {"q":"Muhammad Alush"}
>>> en = urllib.parse.urlencode(data)
>>> en
'q=Muhammad+Alush'

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

اذا نريد ان يظهر لدينا الشكل كرابط كامل من جوجل نستخدم الأوامر
>>> import urllib.request
>>> import urllib.parse
>>> data = {"q":"Muhammad Alush"}
>>> en = urllib.parse.urlencode(data)
>>> en
'q=Muhammad+Alush'
>>> search = "https://www.google.com/search?"+en
>>> search
'https://www.google.com/search?q=Muhammad+Alush'

لاحظتم كيف وضعنا رابط جوجل و استدعينا الـ encoding من المثال السابق ووضع لنا نتيجة بحث كاملة مع رابط جوجل وبعدها استدعينا الرابط.

 

قراءة جزء من هيدرز الموقع

>>> re = urllib.request.Request(search,headers={'User-Agent':'Mozilla/5.0'})
>>> ree = urllib.reqest.urlopen(re)
>>> ree.read()[0:100]
b'<!doctype html><html dir="rtl" itemscope=""itemtype="http://schema.prg/SearchResultsPage" lang="ar"'

 

دمج نتيجتين بحث بواسطة مكتبة urllibمع بعض

>>> import urllib.request
>>> import urllib.parse
>>> url = "/search/found"
>>> url2 = "search/not"
>>> urllib.parse.urljoin(url,url2)
'/search/search/not'


رؤية تشفير encode url بواسطة مكتبة urllib

>>> urllib.parse.urlparse(search)
ParseResult(scheme='https', netloc='www.google.com', path='/search', params='', query='q=Muhammad+Alush', fragment='')


رؤية معلومات url عن طريق qoute

>>> urllib.parse.quote("+Muhammad+Turkey+Alush")
'%2BMuhammad%2BTurkey%2BAlush'

لاحظنا انه وضع لنا %2B هذا نوع من انواع الروابط نراه دائماً في الروابط.


كيفية عمل بحث search مباشر بواسطة مكتبة urllib

>>> import requests
>>> re = requests.get(search,headers={'User-Agent':'Mozilla/5.0'})
>>> re.content[0:100]
b'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n<html>\n<head><meta http-equiv="conte'

كل هذا كان اعتمادا على الذي استخدمناه من بداية الدرس من نفس الشل.

سكربتات بواسطة urllib


رؤية الهيدرز لنتيجة البحث بواسطة مكتبة urllib

>>> re.headers
{'Date': 'Wed, 27 May 2020 12:02:43 GMT', 'Pragma': 'no-cache', 'Expires': 'Fri, 01 Jan 1990 00:00:00 GMT', 'Cache-Control': 'no-store, no-cache, must-revalidate', 'Content-Type': 'text/html', 'Server': 'HTTP server (unknown)', 'Content-Length': '2868', 'X-XSS-Protection': '0', 'Alt-Svc': 'h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"'}


و لرؤية الكوكيز نكتب re.cookies و يظهر لنا.

لتحميل كتاب 3 صفحات فقط يوضحوا لنا التعامل مع هذه المكتبة بإحترافية كبيرة اضغط على زر التحميل الآتي:

google-playkhamsatmostaqltradent