توجيه SOCKS في aiohttp باستخدام aiohttp-socks
استخدم موصّلاً متوافقاً يدعم SOCKS بدلاً من نسخ مثال قديم لوكيل aiohttp بفئات موصّل محذوفة.
يوثّق aiohttp دعم وكيل HTTP عبر خيارات الطلب. تحتاج نقطة نهاية SOCKS إلى تنفيذ يتحدث SOCKS. تغيير منفذ عنوان URL للوكيل إلى 1080 لا يوفّر ذلك التنفيذ.
داخل دالة async، استخدم الموصّل الذي يقدّمه مشروع aiohttp-socks المُصان:
import aiohttp
from aiohttp_socks import ProxyConnector
connector = ProxyConnector.from_url('socks5://203.0.113.10:1080')
async with aiohttp.ClientSession(connector=connector) as session:
async with session.get('https://example.com/') as response:
body = await response.read()يفترض هذا أن حزمة الموصّل متاحة بالفعل ومتوافقة مع إصدار aiohttp في التطبيق. نقطة النهاية توضيحية؛ تقدّم قائمة وكلاء SOCKS5 مرشحين عامين لعنوان URL الخاص بالموصّل. اضبط سياسة المهلة وحجم الاستجابة لعبء العمل الفعلي.
تشير الإجابات القديمة إلى حزم وأسماء موصّلات مختلفة: aiosocks وaiosocksy وaiohttp-socks ليست مسارات استيراد قابلة للتبادل. اقرأ المتطلبات والمثال الخاص بالحزمة المستخدمة فعلياً. قد يفشل دمج فئة من مشروع مع وسائط مشروع آخر قبل محاولة أي اتصال بالوكيل.
أبقِ الموصّل وعمر الجلسة معاً، وتحقق من سلوك تحليل اسم المضيف حيث يهم ذلك. تمرير عنوان URL لـ SOCKS إلى خيار وكيل HTTP غير ذي صلة ليس بديلاً عن المسار الموثّق للموصّل.