Full-featured proxy connector for aiohttp
Project description
aiohttp-proxy
SOCKS proxy connector for aiohttp. HTTP, HTTPS, SOCKS4(a) and SOCKS5(h) proxies are supported.
Requirements
- Python >= 3.5.3
- aiohttp >= 2.3.2 # including v3.x
Installation
pip install aiohttp_proxy
Usage
aiohttp usage:
import aiohttp
from aiohttp_proxy import ProxyConnector, ProxyType
async def fetch(url):
connector = ProxyConnector.from_url('http://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
# )
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_proxy import open_connection
async def fetch():
reader, writer = await open_connection(
socks_url='http://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 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.
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.
Source Distribution
Built Distribution
File details
Details for the file aiohttp_proxy-0.1.2.tar.gz
.
File metadata
- Download URL: aiohttp_proxy-0.1.2.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4da16face2df486329f7eef36719da5c2ac7136e756574de06b428c5793b8090 |
|
MD5 | d19a86c68309402d18f5145cff4c73c6 |
|
BLAKE2b-256 | 0393d7cc02c794a3febbbe7b0fd1b2c7cb31234b2556b9da7bee273c33ae0f6f |
File details
Details for the file aiohttp_proxy-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: aiohttp_proxy-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b955ab883d30fd5452f6b226f0b416fc3905cc5e2b3f023b481e95664ef40667 |
|
MD5 | ec3eadad19a4e487323bacabbfd20c2e |
|
BLAKE2b-256 | 9701e97e1ca3b4ca031c54f3751a7f4b5829626c167846784202edafe2959781 |