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-проксі не замінює документований шлях конектора.

Схожі статті