كيفية استخدام البروكسي في Python Requests (HTTP/HTTPS وتجميع الجلسات)
آخر تحديث:
تقبل مكتبة requests في بايثون بروكسيات VinaProxy الموثقة عبر قاموس proxies الذي يوجه كلاً من بروتوكولي 'http' و 'https' إلى http://user:pass@ip:port. يتيح ربط هذا القاموس بجلسة دائمة requests.Session() إعادة استخدام مقابس TCP لتسريع عمليات سحب البيانات (Web Scraping) بأقل استهلاك للموارد.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
تنسيق قاموس proxies وإعادة استخدام الجلسات Session
يؤدي استدعاء requests.get() لكل عنوان URL بشكل مستقل إلى إنشاء اتصال TCP ومصافحة TLS جديدة تماماً في كل مرة. يؤدي ربط البروكسي بـ session = requests.Session() إلى إبقاء نفق البروكسي مفتوحاً عبر الطلبات المتتالية.
| معلمة Requests | الصيغة البرمجية الموصى بها | الهدف الفني |
|---|---|---|
مفتاح 'http' | 'http://user:pass@ip:port' | لتوجيه طلبات HTTP العادية عبر البروكسي |
مفتاح 'https' | 'http://user:pass@ip:port' | يستخدم بادئة http:// لتطلب حزمة urllib3 نفق HTTP CONNECT لتشفير TLS |
محدد الوقت timeout | timeout=(5, 15) | مهلة 5 ثوانٍ للاتصال و15 ثانية للقراءة لمنع تجمد خيوط المعالجة |
| تدوير العناوين | itertools.cycle(proxy_list) | لتوزيع الطلبات بالتساوي عبر مجموعة عناوين IP الثابتة المخصصة |
تجنب أخطاء urllib3 واستثناءات ProxyError الشائعة
- استخدم دائماً
http://(وليسhttps://) كبادئة لرابط البروكسي لمفتاحي'http'و'https'ما لم يكن منفذ البروكسي يتطلب صراحة تشفير TLS-over-TLS - قم بترميز الرموز الخاصة في كلمات المرور برمجياً باستخدام
urllib.parse.quote(password, safe='') - يشير خطأ
407 Proxy Authentication Requiredإلى أن اسم المستخدم أو كلمة المرور في الرابط لا تتطابق مع بيانات لوحة التحكم - تعمل نفس الآلية تماماً مع مكتبة
httpx.Client(proxy='http://user:pass@ip:port')ومكتبةaiohttpعبرsession.get(url, proxy=...)
خطوة بخطوة
- 1
تحويل ip:port:user:pass إلى صيغة URL
استخدم محول صيغ البروكسي لتحويل قائمة VinaProxy إلى نصوص بصيغة
http://user:pass@ip:port. - 2
تعريف قاموس proxies
قم بتعريف
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}داخل كود بايثون. - 3
الربط مع كائن requests.Session()
أنشئ الجلسة
s = requests.Session()واستدعِs.proxies.update(proxies)لتفعيل خاصيةKeep-Alive. - 4
التحقق من عنوان IP الصادر عبر طلب اختبار
نفذ الأمر
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())للتأكد من ظهور عنوان IP البروكسي.
الأسئلة الشائعة
لماذا يستخدم مفتاح 'https' الرابط 'http://user:pass@ip:port'؟
تخبر البادئة http:// مكتبة urllib3 بكيفية الاتصال بخادم البروكسي نفسه عبر نفق HTTP CONNECT، بينما تظل حركة البيانات الموجهة نحو موقع https:// المستهدف مشفرة بتشفير TLS كامل من الطرف إلى الطرف.
كيف أقوم بتدوير 25 بروكسي ثابت بين الطلبات في بايثون؟
قم بتحميل روابط البروكسي الـ 25 في pool = itertools.cycle(PROXIES) ومرر proxies={'http': p, 'https': p} مع كل طلب، مع مراعاة وضع حدود زمنية مناسبة لكل IP.
هل تفرض VinaProxy قيوداً على سعة استهلاك البيانات في سكريبتات بايثون؟
لا. تشمل جميع باقات IPv4 المخصصة والبروكسيات السكنية الثابتة ISP حركة مرور شهرية غير محدودة.
ابنِ شبكة بروكسيات غير محدودة لسحب البيانات في بايثون
بروكسيات IPv4 مخصصة وISP سكنية ثابتة وفورية عبر 7 دول رئيسية.
شراء بروكسيات بايثون