Is there any way to use aiohttp client with socks

2019-03-27 15:59发布

问题:

Looks like aiohttp.ProxyConnector doesn't support socks proxy. Is there any workaround for this? I would be grateful for any advice.

回答1:

Have you tried aiosocks ?

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


回答2:

aiosocks does not work with the newer version 3.+ of aiohttp. You can use aiosocksy to implement socks proxy.

To check whether aiosocksy is working you can look at the following code sample https://stackoverflow.com/a/53657536/6735546