Proxy connector for aiohttp
Project description
aiohttp-socks
The aiohttp-socks package provides a proxy connector for aiohttp.
Supports SOCKS4(a), SOCKS5, HTTP (tunneling) as well as Proxy chains.
It uses python-socks for core proxy functionality.
Requirements
- Python >= 3.6
- aiohttp >= 2.3.2
- python-socks[asyncio] >= 1.0.1
Installation
pip install aiohttp_socks
Usage
aiohttp usage:
import aiohttp from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector async def fetch(url): connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080') ### or use ProxyConnector constructor # connector = ProxyConnector( # proxy_type=ProxyType.SOCKS5, # host='127.0.0.1', # port=1080, # username='user', # password='password', # rdns=True # ) ### proxy chaining (since ver 0.3.3) # connector = ChainProxyConnector.from_urls([ # 'socks5://user:password@127.0.0.1:1080', # 'socks4://127.0.0.1:1081', # 'http://user:password@127.0.0.1:3128', # ]) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url) as response: return await response.text()
aiohttp-socks also provides open_connection and create_connection functions:
from aiohttp_socks import open_connection async def fetch(): reader, writer = await open_connection( proxy_url='socks5://user:password@127.0.0.1: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 yet another SOCKS connector for aiohttp
Unlike aiosocksy, aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
| Filename, size | File type | Python version | Upload date | Hashes |
|---|---|---|---|---|
| Filename, size aiohttp_socks-0.6.0-py3-none-any.whl (9.2 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
| Filename, size aiohttp_socks-0.6.0.tar.gz (8.3 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for aiohttp_socks-0.6.0-py3-none-any.whl
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 | db7aa48c0758ee45d7dbc1fde499912ec6fb77eab77a6e2808825d1f41d4e300 |
|
| MD5 | 2926f08a93346b13f392a803fc5784c9 |
|
| BLAKE2-256 | 9a6cd302e5a8097fee1e83b9f8e9da10d7752fbf27c74db18b3cc9528b3479be |