تعتبر مكتبة Request واحدة من أهم المكتبات في بايثون الخاصة بجلب المحتوى من الانترنت، لها العديد من التطبيقات في علوم البيانات وتحليلها مثل تحميل بيانات خاصة بالحالة الدراسية التي يعمل عليها عامل البيانات من الإنترنت لمعالجتها بالزمن الحقيقي.
في هذه المقالة سنقدم شرح كامل عن مكتبة Requests في بايثون.
تنصيب مكتبة requests
لتنصيب مكتبة requests قم بتنفيذ الكود التالي في موجه الأوامر
python -m pip install requests
تستطيع تنصيب المكتبة requests عبر الكود البرمجي الخاص بها كمايلي ( تأكد من كتابة النقطة بعد install )
curl -OL https://github.com/psf/requests/tarball/master
cd requests
python -m pip install .
انشاء طلب عبر مكتبة Request
لإنشاء طلب قم أولا باستدعاء المكتبة عبر تعليمة import ثم استدعاء التابع get في المكتبة مع تمرير رابط موقع الإنترنت الذي ترغب بتحميله كما يلي:
import requests
r = requests.get('https://api.github.com/events')
يقوم هذه التابع بإنشاء كائن Object من نوع Response يحوي جميع البيانات حول طلبك ويتم تخزينه في المتحول r.
لإنشاء طلب HTTP من نوع POST، أي لإرسال بيانات إلى مخدم وب، تستطيع القيام بذلك عبر إمرار مصفوفة JSON عبر البارامتر data في التابعpost كمايلي:
r = requests.post('https://httpbin.org/post', data = {'key':'value'})
كما أن جميع عمليات HTTP الأخرى متاحة كتوابع ضمن مكتبة requests كمايلي:
>>> r = requests.put('https://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('https://httpbin.org/delete')
>>> r = requests.head('https://httpbin.org/get')
>>> r = requests.options('https://httpbin.org/get')
تمرير متحولات في الروابط ضمن مكتبة Requests
البارامترات في الروابط شيء جوهري عند إنشاء طلبات HTTP تستطيع القيام بذلك في مكتبة requests عبر إنشاء حمل payload على شكل مصفوفة JSON وإمرارها للطلب على شكل:
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.get('https://httpbin.org/get', params=payload)
سيكون هذا الطلب مكافئ ل:
https://httpbin.org/get?key1=value1&key2=value2
للتأكد من أنك قمت بإنشاء الطلب الصحيح تستطيع طباعة الرابط
print(r.url)
إنشاء ترويسة Header خاصة لطلب HTTP
تستطيع أيضا إنشاء ترويسة خاصة للطلب عبر تمرير مصفوفة JSON إلى البارامتر headers كمايلي:
>>> url = 'https://api.github.com/some/endpoint' >>> headers = {'user-agent': 'my-app/0.0.1'} >>> r = requests.get(url, headers=headers)
إرسال ملفات في مكتبة requests
لإرسال ملف عبر طلب POST تستطيع تمرير الملفات عبر البارامتر files كمايلي
>>> url = 'https://httpbin.org/post'
>>> files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
>>> r = requests.post(url, files=files)
>>> r.text
{
...
"files": {
"file": "<censored...binary...data>"
},
...
}
كانت هذه لمحة سريعة عن أهم الاستخدامات لمكتبة requests، اذا كان لديك اي سؤال او استفسار اكتب لنا بالتعليقات وسنقوم بمساعدتك.