كيفية إرسال طلبات HTTP إلى الإنترنت باستخدام Python؟

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هي مكتبة requests ولماذا تحتاجها؟

مكتبة requests هي واحدة من أشهر وأسهل مكتبات Python لإجراء طلبات HTTP. توفر واجهة بسيطة لإرسال طلبات GET و POST و PUT و DELETE وغيرها من أنواع طلبات HTTP بأقل قدر من الكود.

المزايا الرئيسية لمكتبة requests

  • سهولة التركيب وواجهة برمجية بديهية
  • دعم مدمج للجلسات وإدارة الكوكيز
  • معالجة تلقائية لبيانات JSON والنماذج
  • دعم طرق المصادقة المختلفة
  • إمكانية العمل مع خوادم البروكسي
  • توثيق شامل بالعربية والإنجليزية
  • دعم نشط من مجتمع المطورين

تثبيت مكتبة requests

يتم تثبيت مكتبة requests عبر مدير الحزم pip. تعتمد طريقة التثبيت على إصدار Python الذي تستخدمه.

التثبيت القياسي

pip install requests

التثبيت لـ Python 3

إذا كان لديك عدة إصدارات من Python مثبتة، استخدم الأمر pip3 للتثبيت في بيئة Python 3:

pip3 install requests

التحقق من التثبيت

بعد التثبيت، يمكنك التحقق من نجاح العملية باستيراد المكتبة في وحدة تحكم Python:

import requests
print(requests.__version__)

أساسيات طلبات GET

تُستخدم طلبات GET لجلب البيانات من خادم الويب. هذا هو النوع الأكثر شيوعًا من طلبات HTTP في تطوير الويب.

طلب GET بسيط

import requests

response = requests.get('https://api.github.com')
print(response.status_code)  # حالة الاستجابة (200 - OK)
print(response.text)         # نص الاستجابة

تحليل استجابة الخادم

عند العمل مع طلبات GET، من المهم تحليل الاستجابة بشكل صحيح. يحتوي كائن response على العديد من الخصائص المفيدة:

  • status_code - حالة HTTP للاستجابة
  • text - محتوى الاستجابة كنص
  • content - محتوى الاستجابة بالبايت
  • headers - رؤوس الاستجابة
  • url - عنوان URL النهائي للطلب

العمل مع معاملات الطلب

يمكن تمرير معاملات URL عبر قاموس، مما يجعل الكود أكثر قابلية للقراءة والتعديل:

params = {
    'q': 'python programming',
    'page': 2,
    'limit': 50
}

response = requests.get('https://www.example.com/search', params=params)
print(response.url)  # عرض عنوان URL المُنشأ مع المعاملات

طلبات POST وإرسال البيانات إلى الخادم

تُستخدم طلبات POST لإرسال البيانات إلى الخادم، مثل تعبئة النماذج أو إنشاء سجلات جديدة في قاعدة البيانات.

إرسال بيانات النموذج

data = {
    'username': 'admin',
    'password': '12345',
    'email': 'admin@example.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.text)

إرسال بيانات JSON

عند العمل مع واجهات API الحديثة، غالبًا ما تحتاج لإرسال البيانات بتنسيق JSON. تقوم مكتبة requests تلقائيًا بتعيين Content-Type الصحيح عند استخدام المعامل json:

import json

data = {
    'name': 'John Doe',
    'age': 30,
    'city': 'Cairo'
}

response = requests.post('https://httpbin.org/post', json=data)
result = response.json()  # تحويل تلقائي للاستجابة إلى JSON
print(result)

الفرق بين معاملي data و json

  • المعامل data يرسل البيانات كنموذج (application/x-www-form-urlencoded)
  • المعامل json يرسل البيانات بتنسيق JSON (application/json)

المدونات

توصيات الكتب