Python Requests

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

Python Requests: دليل شامل للمبتدئين

Python Requests هي مكتبة بايثون بسيطة وأنيقة تُستخدم لإرسال طلبات HTTP. تعتبر أداة أساسية لأي مبرمج بايثون يحتاج إلى التفاعل مع الويب، سواء كان ذلك لجلب البيانات من واجهات برمجة التطبيقات (APIs)، أو اختبار خدمات الويب، أو أتمتة مهام الويب. هذا المقال موجه للمبتدئين ويهدف إلى تقديم شرح مفصل لكيفية استخدام مكتبة Requests في بايثون، مع التركيز على المفاهيم الأساسية والأمثلة العملية.

ما هي طلبات HTTP؟

قبل الغوص في مكتبة Requests، من المهم فهم ما هي طلبات HTTP. HTTP (Hypertext Transfer Protocol) هو البروتوكول الذي يحكم الاتصال بين المتصفحات وخوادم الويب. عندما تكتب عنوان URL في متصفحك وتضغط على Enter، فإنك ترسل طلب HTTP إلى الخادم. يقوم الخادم بمعالجة الطلب وإرسال استجابة، والتي يعرضها المتصفح لك.

هناك أنواع مختلفة من طلبات HTTP، بما في ذلك:

  • GET: يُستخدم لجلب البيانات من الخادم.
  • POST: يُستخدم لإرسال البيانات إلى الخادم لإنشاء أو تحديث مورد.
  • PUT: يُستخدم لتحديث مورد موجود على الخادم.
  • DELETE: يُستخدم لحذف مورد من الخادم.
  • PATCH: يُستخدم لتطبيق تعديلات جزئية على مورد موجود.

تثبيت مكتبة Requests

لتثبيت مكتبة Requests، يمكنك استخدام أداة pip، وهي مدير حزم بايثون. افتح سطر الأوامر (command prompt) أو الطرفية (terminal) وأدخل الأمر التالي:

```bash pip install requests ```

سيقوم هذا بتنزيل وتثبيت أحدث إصدار من مكتبة Requests.

استيراد مكتبة Requests

بعد تثبيت مكتبة Requests، يمكنك استيرادها في برنامج بايثون الخاص بك باستخدام العبارة التالية:

```python import requests ```

طلب GET الأساسي

أبسط طريقة لاستخدام مكتبة Requests هي إرسال طلب GET. إليك مثال:

```python import requests

response = requests.get('https://www.example.com')

print(response.status_code) print(response.text) ```

في هذا المثال، نرسل طلب GET إلى `https://www.example.com`. تقوم الدالة `requests.get()` بإرجاع كائن `Response`، الذي يحتوي على معلومات حول الاستجابة من الخادم. `response.status_code` يحتوي على رمز حالة HTTP، والذي يشير إلى نجاح أو فشل الطلب. `response.text` يحتوي على محتوى الاستجابة كـ سلسلة نصية.

رموز حالة HTTP

رموز حالة HTTP هي رموز ثلاثية الأرقام تشير إلى نتيجة طلب HTTP. بعض رموز حالة HTTP الشائعة تشمل:

  • 200 OK: يشير إلى أن الطلب قد تم بنجاح.
  • 404 Not Found: يشير إلى أن المورد المطلوب غير موجود.
  • 500 Internal Server Error: يشير إلى أن الخادم واجه خطأً غير متوقع.
  • 301 Moved Permanently: يشير إلى أن المورد قد تم نقله بشكل دائم إلى عنوان URL جديد.

تمرير المعلمات في طلب GET

يمكنك تمرير المعلمات في طلب GET باستخدام معلمة `params`. إليك مثال:

```python import requests

params = {'key1': 'value1', 'key2': 'value2'}

response = requests.get('https://httpbin.org/get', params=params)

print(response.url) print(response.json()) ```

في هذا المثال، نمرر قاموسًا يحتوي على معلمات إلى الدالة `requests.get()`. تقوم مكتبة Requests تلقائيًا بتشفير هذه المعلمات وإضافتها إلى عنوان URL. `httpbin.org` هي خدمة ويب مفيدة لاختبار طلبات HTTP. `response.url` يعرض عنوان URL الكامل مع المعلمات، و `response.json()` يقوم بتحويل استجابة JSON إلى قاموس بايثون.

طلب POST

لإرسال طلب POST، يمكنك استخدام الدالة `requests.post()`. إليك مثال:

```python import requests

data = {'key1': 'value1', 'key2': 'value2'}

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

print(response.status_code) print(response.json()) ```

في هذا المثال، نمرر قاموسًا يحتوي على البيانات إلى الدالة `requests.post()`. تقوم مكتبة Requests تلقائيًا بتشفير هذه البيانات وإرسالها في نص الطلب.

إرسال بيانات JSON في طلب POST

إذا كنت بحاجة إلى إرسال بيانات JSON في طلب POST، يمكنك استخدام معلمة `json`. إليك مثال:

```python import requests import json

data = {'key1': 'value1', 'key2': 'value2'}

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

print(response.status_code) print(response.json()) ```

في هذا المثال، نمرر قاموسًا يحتوي على البيانات إلى الدالة `requests.post()` باستخدام معلمة `json`. تقوم مكتبة Requests تلقائيًا بتحويل هذا القاموس إلى JSON وإرساله في نص الطلب.

الرؤوس (Headers)

يمكنك تعيين رؤوس HTTP في طلباتك باستخدام معلمة `headers`. الرؤوس هي معلومات إضافية يتم إرسالها مع الطلب أو الاستجابة. إليك مثال:

```python import requests

headers = {'User-Agent': 'My User Agent'}

response = requests.get('https://httpbin.org/headers', headers=headers)

print(response.json()) ```

في هذا المثال، نعيّن رأس `User-Agent` إلى قيمة مخصصة. يستخدم رأس `User-Agent` لتحديد المتصفح أو التطبيق الذي يرسل الطلب.

التعامل مع الاستثناءات

من المهم التعامل مع الاستثناءات التي قد تحدث أثناء إرسال طلبات HTTP. أحد الاستثناءات الشائعة هو `requests.exceptions.RequestException`. إليك مثال:

```python import requests

try:

   response = requests.get('https://www.example.com', timeout=5)
   response.raise_for_status() # Raises HTTPError for bad responses (4xx or 5xx)
   print(response.text)

except requests.exceptions.RequestException as e:

   print(f"An error occurred: {e}")

```

في هذا المثال، نستخدم كتلة `try...except` للتعامل مع الاستثناءات. `response.raise_for_status()` يرفع استثناء `HTTPError` إذا كان رمز حالة HTTP يشير إلى خطأ (4xx أو 5xx). `timeout=5` يحدد مهلة للطلب بالثواني.

استخدام الجلسات (Sessions)

يمكنك استخدام الجلسات للحفاظ على بعض المعلمات بين الطلبات المتعددة، مثل ملفات تعريف الارتباط (cookies). إليك مثال:

```python import requests

session = requests.Session()

session.headers.update({'User-Agent': 'My Session'})

response1 = session.get('https://httpbin.org/get') response2 = session.post('https://httpbin.org/post', data={'key': 'value'})

print(response1.json()) print(response2.json()) ```

في هذا المثال، ننشئ كائن `Session`. نقوم بتعيين رأس `User-Agent` للجلسة. ثم نرسل طلبين باستخدام الجلسة. سيتم تضمين رأس `User-Agent` في كلا الطلبين.

معالجة ملفات تعريف الارتباط (Cookies)

يمكنك الوصول إلى ملفات تعريف الارتباط من كائن `Response`. إليك مثال:

```python import requests

response = requests.get('https://httpbin.org/cookies/set?mycookie=myvalue')

print(response.cookies.get_dict()) ```

في هذا المثال، نرسل طلب GET إلى `https://httpbin.org/cookies/set?mycookie=myvalue`. تقوم هذه الخدمة بتعيين ملف تعريف ارتباط باسم `mycookie` وقيمة `myvalue`. `response.cookies.get_dict()` يقوم بإرجاع قاموس يحتوي على ملفات تعريف الارتباط.

استخدام الوكيل (Proxy)

يمكنك استخدام وكيل لإخفاء عنوان IP الخاص بك أو لتجاوز القيود الجغرافية. إليك مثال:

```python import requests

proxies = {

 'http': 'http://10.10.1.10:3128',
 'https': 'http://10.10.1.10:1080',

}

response = requests.get('https://httpbin.org/ip', proxies=proxies)

print(response.json()) ```

في هذا المثال، نمرر قاموسًا يحتوي على إعدادات الوكيل إلى الدالة `requests.get()`.

تطبيقات في الخيارات الثنائية والتحليل الفني

مكتبة Requests يمكن استخدامها في سياق الخيارات الثنائية والتحليل الفني للوصول إلى بيانات السوق، مثل أسعار الأسهم، وأسعار العملات الأجنبية، والمؤشرات الفنية. على سبيل المثال:

  • **جلب بيانات الأسعار:** يمكن استخدام Requests لجلب بيانات الأسعار من واجهات برمجة التطبيقات الخاصة بالوسطاء أو مزودي البيانات المالية. هذه البيانات ضرورية لتنفيذ استراتيجيات تداول الخيارات الثنائية مثل استراتيجية 60 ثانية أو استراتيجية مارتينجال .
  • **تحليل الاتجاهات:** يمكن استخدام Requests لجلب بيانات تاريخية للأسعار وتحليل الاتجاهات باستخدام مؤشر المتوسط المتحرك أو مؤشر الماكد .
  • **تكامل مع مؤشرات فنية:** يمكن استخدام Requests لجلب بيانات من خدمات توفر حسابات للمؤشرات الفنية مثل مؤشر القوة النسبية (RSI) أو مؤشر ستوكاستيك .
  • **أتمتة التداول:** يمكن استخدام Requests لأتمتة عمليات التداول عن طريق إرسال طلبات إلى واجهة برمجة التطبيقات الخاصة بالوسيط. (مع التحذير الشديد من المخاطر!)
  • **تحليل حجم التداول:** يمكن استخدام Requests لجلب بيانات حجم التداول لتحديد قوة الاتجاهات وتأكيد الإشارات.
  • **استراتيجيات الاختراق:** يمكن استخدام Requests لجلب بيانات حول مستويات الدعم والمقاومة لتحديد نقاط الدخول والخروج المحتملة. مثل استراتيجية الاختراق.
  • **استراتيجيات التداول بناءً على الأخبار:** يمكن استخدام Requests لجلب الأخبار المالية وتحليل تأثيرها على أسعار الأصول.
  • **استراتيجيات التداول بناءً على أنماط الشموع اليابانية:** يمكن استخدام Requests لجلب بيانات تاريخية للأسعار وتحليل أنماط الشموع اليابانية.
  • **استراتيجيات التداول بناءً على التباعد:** يمكن استخدام Requests لجلب بيانات حول المؤشرات الفنية والبحث عن حالات التباعد.
  • **استراتيجيات التداول بناءً على التذبذب:** يمكن استخدام Requests لجلب بيانات حول تقلبات الأسعار وتحديد فرص التداول.
  • **استراتيجيات التداول بناءً على المتوسطات:** يمكن استخدام Requests لحساب المتوسطات المختلفة لتحديد الاتجاهات.
  • **استراتيجيات التداول بناءً على الأنماط:** يمكن استخدام Requests للبحث عن أنماط فنية محددة.
  • **استراتيجيات التداول بناءً على الاختراقات:** يمكن استخدام Requests لتحديد الاختراقات في مستويات الدعم والمقاومة.
  • **استراتيجيات التداول بناءً على الارتدادات:** يمكن استخدام Requests لتحديد الارتدادات من مستويات الدعم والمقاومة.
  • **استراتيجيات التداول بناءً على التحليل الأساسي:** يمكن استخدام Requests لجلب البيانات الاقتصادية والمالية لتحليل الأساسيات.
  • **استراتيجيات التداول بناءً على التحليل العاطفي:** يمكن استخدام Requests لجلب البيانات من وسائل التواصل الاجتماعي لقياس المشاعر حول الأصول.
  • **استراتيجيات التداول بناءً على التحليل الفني الكمي:** يمكن استخدام Requests لجلب البيانات التاريخية وتنفيذ التحليل الفني الكمي.
  • **استراتيجيات التداول بناءً على التعلم الآلي:** يمكن استخدام Requests لجلب البيانات وتدريب نماذج التعلم الآلي للتنبؤ بأسعار الأصول.
  • **استراتيجيات التداول بناءً على التحليل الموجي:** يمكن استخدام Requests لجلب البيانات التاريخية وتحليل الموجات لتحديد الاتجاهات.
  • **استراتيجيات التداول بناءً على نظرية فوضى الأسواق:** يمكن استخدام Requests لجلب البيانات التاريخية وتحليل الفوضى في الأسواق.
  • **استراتيجيات التداول بناءً على التحليل متعدد الأطر الزمنية:** يمكن استخدام Requests لجلب البيانات من أطر زمنية مختلفة لتحليل الاتجاهات.

تحذير هام: تداول الخيارات الثنائية ينطوي على مخاطر عالية ويمكن أن يؤدي إلى خسارة رأس المال الخاص بك. يجب أن تكون على دراية كاملة بالمخاطر قبل البدء في التداول. لا تستثمر أكثر مما يمكنك تحمل خسارته.

الخلاصة

مكتبة Requests هي أداة قوية ومرنة لإرسال طلبات HTTP في بايثون. من خلال فهم المفاهيم الأساسية والأمثلة العملية الموضحة في هذا المقال، يمكنك البدء في استخدام مكتبة Requests للتفاعل مع الويب وأتمتة مهامك. تذكر دائماً التعامل مع الاستثناءات وتأمين طلباتك لحماية بياناتك. ```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер