القائمة الرئيسية

الصفحات

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

 python


urllib.parse (Encode url)

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

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

00

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

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

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

Screenshot%2Bat%2B2020-05-22%2B20-56-05

في البداية استدعينا المكاتب و انشأنا متغير ووضعنا له قيم البحث الذي نريدها و بعدها عملنا 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'
>>>  

Screenshot%2Bat%2B2020-05-22%2B20-57-32

لاحظتم كيف وضعنا رابط جوجل و استدعينا الـ 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"'

دمج نتيجتين بحث مع بعض

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

لرؤية encode للـ url

>>> 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

>>> 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'
>>>  

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

Screenshot%2Bat%2B2020-05-27%2B15-03-20

لرؤية الهيدرز 

>>> 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"'}

Screenshot%2Bat%2B2020-05-27%2B15-05-48

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

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

down-ar-300-1

هل اعجبك الموضوع :

تعليقات

التنقل السريع