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-прокси не заменяет документированный путь коннектора.

Похожие статьи