Есть ли способ использовать клиент aiohttp с прокси-сервером socks?

Похоже, aiohttp.ProxyConnector не поддерживает прокси-сервер socks. Есть ли обходной путь для этого? Буду признателен за любой совет.


person Mikhail Gerasimov    schedule 30.04.2016    source источник
comment
Вы можете попробовать задать свой вопрос в группе Google для aio-libs: groups.google .com/forum/#!forum/aio-libs   -  person Viach Kakovskyi    schedule 09.05.2016


Ответы (2)


Вы пробовали айосокс?

import asyncio
import aiosocks
from aiosocks.connector import SocksConnector

conn = SocksConnector(proxy=aiosocks.Socks5Addr(PROXY_ADDRESS, PROXY_PORT), proxy_auth=None, remote_resolve=True)
session = aiohttp.ClientSession(connector=conn)
async with session.get('http://python.org') as resp:
    assert resp.status == 200
person Thomas Perrot    schedule 20.09.2016
comment
Когда я пытаюсь это сделать, я получаю "ImportError: cannot import name 'SocksConnector'" ... Как правильно это сделать сейчас? - person J. Taylor; 06.05.2018
comment
@J.Taylor Вместо этого используйте ProxyConnector. from aiosocks.connector import ProxyConnector https://github.com/nibrag/aiosocks#aiohttp-usage - person devunt; 21.06.2018

aiosocks не работает с более новой версией 3.+ aiohttp. Вы можете использовать aiosocksy для реализации socks-прокси.

Чтобы проверить, работает ли aiosocksy, вы можете посмотреть следующий пример кода https://stackoverflow.com/a/53657536/6735546

person Monu Yadav    schedule 06.12.2018
comment
Хотя вы правы, aiohttp-socks от того же разработчика, скорее всего, будет поддерживаться в будущих обновлениях, согласно readme. - person 2i3r; 16.10.2019