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 aiohttp_proxy
import aiohttp from aiohttp_proxy 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 aiohttp_proxy 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.
Hashes for aiohttp_proxy-0.1.2-py3-none-any.whl