استخدام عنوان IP لوكيل في Python Requests
حدّد مسارات الوكيل صراحة لكل طلب في Requests، واختر مخطط نقطة الاتصال الصحيح، وتعامل مع المهل وإخفاقات نفق HTTPS.
عندما تكون Requests متاحة في مشروعك، مرّر تعيين الوكلاء إلى الاستدعاء:
import requests
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)
استبدل نقطة اتصال الاسترجاع بوكيلك العامل أو بمرشح من قائمة وكلاء HTTP ستختبره بهذا الطلب. تصف المفاتيح مخططات الوجهة: http لعناوين HTTP وhttps لعناوين HTTPS. وتصف القيم منفذ استماع الوكيل. قد تكون نقاطًا مختلفة إذا كانت شبكتك تتطلب مسارات منفصلة.
وجود قيمة وكيل تبدأ بـ http:// تحت المفتاح https أمر مقصود. تطلب Requests نفق CONNECT من منفذ استماع HTTP ثم تنشئ TLS مع الوجهة عبره، وفق سياسة الوكيل للوجهات والمنافذ. تغيير القيمة إلى https:// يطلب TLS مع الوكيل نفسه، وقد يفشل إذا كان منفذ الاستماع يتوقع HTTP غير مشفّر.
ما معنى رقمي المهلة؟
يضبط timeout=(5, 15) مهلتي الاتصال والقراءة. ولا يفرض حدًا إجماليًا مدته خمس عشرة ثانية. قد تطيل البيانات الواردة دوريًا وتعدد العناوين ومحاولات الاتصال الزمن المنقضي. لا تضع Requests مهلة عامة عند إغفال هذا الإعداد، لذا اختر حدودًا تناسب الاستجابة وأضف موعد انتهاء على مستوى التطبيق إذا كانت المهمة تحتاج ميزانية زمنية إجمالية صارمة.
عالج الإخفاق في المرحلة التي يحدث فيها
try:
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
except requests.exceptions.ProxyError as error:
print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
print("HTTP status:", error.response.status_code)
قد يؤدي رفض CONNECT إلى ProxyError قبل وجود استجابة من الوجهة. يأتي فرع HTTPError بعد استجابة مستلمة ذات حالة خطأ، بينما يعني Timeout انتهاء حد تم ضبطه. افحص سلاسل استثناءات إنشاء الاتصال محليًا، وأزل نقاط الاتصال التي تحتوي بيانات اعتماد وعناوين URL الخاصة قبل مشاركتها.
اترك التحقق من الشهادات مفعّلًا. إذا كانت الشبكة المخوّلة تستخدم جهة تصديق خاصة أو اعتراضًا مُدارًا، فوفّر مواد الثقة المتوقعة بدل تعطيل التحقق.
تتحكم الإدخالات الصريحة لكل طلب في المسارات المقدمة هنا، لكن المخططات المحذوفة قد تظل متأثرة باكتشاف الوكلاء من البيئة. عند نقل الاستدعاء إلى Session قابلة لإعادة الاستخدام، قرّر كيف تتفاعل متغيرات البيئة وافتراضات Session والتجاوزات الخاصة بكل طلب؛ إعادة استخدام الاتصال وسياسة التوجيه خياران منفصلان.