مسیریابی 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 نامرتبط جایگزین مسیر مستند اتصالدهنده نیست.