Full-featured proxy connector for aiohttp
SOCKS proxy connector for aiohttp. HTTP, HTTPS, SOCKS4(a) and SOCKS5(h) proxies are supported.
- Python >= 3.5.3
- aiohttp >= 2.3.2 # including v3.x
pip install attr_property
import aiohttp from attr_property import ProxyConnector, ProxyType async def fetch(url): connector = ProxyConnector.from_url('http://user:email@example.com:1080') ### or use ProxyConnector constructor # connector = ProxyConnector( # proxy_type=ProxyType.SOCKS5, # host='127.0.0.1', # port=1080, # username='user', # password='password', # rdns=True # ) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url) as response: return await response.text()
aiohttp_socks also provides
from attr_property import open_connection async def fetch(): reader, writer = await open_connection( socks_url='http://user:firstname.lastname@example.org:1080', host='check-host.net', port=80 ) request = (b"GET /ip HTTP/1.1\r\n" b"Host: check-host.net\r\n" b"Connection: close\r\n\r\n") writer.write(request) return await reader.read(-1)
Why give aiohttp a new proxy support
First must declare, our code is based on aiohttp-socks, thank you very much for the hard work.
But in order to more flexible support for multiple proxy methods (not just SOCKS proxy), we decided to fork [aiohttp-socks] (https://github.com/romis2012/aiohttp-socks), which is currently based on it.
Combine with native aiohttp to provide HTTP/HTTPS proxy instead of writing troublesome discriminating code based on the type of proxy.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.