Skip to main content

aiohttp-proxy

Build Status Coverage Status PyPI version

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.

Metadata

Release files for aiohttp-proxy 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiohttp-proxy 0.1.2
File Size Uploaded
aiohttp_proxy-0.1.2.tar.gz 10.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiohttp-proxy 0.1.2
File Interpreter ABI Platform
aiohttp_proxy-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 23.2 kB

Release files / aiohttp_proxy-0.1.2.tar.gz

Download URL aiohttp_proxy-0.1.2.tar.gz
Size 10.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4da16face2df486329f7eef36719da5c2ac7136e756574de06b428c5793b8090
BLAKE2b-256 checksum
How to use checksums
0393d7cc02c794a3febbbe7b0fd1b2c7cb31234b2556b9da7bee273c33ae0f6f
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / aiohttp_proxy-0.1.2-py3-none-any.whl

Download URL aiohttp_proxy-0.1.2-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b955ab883d30fd5452f6b226f0b416fc3905cc5e2b3f023b481e95664ef40667
BLAKE2b-256 checksum
How to use checksums
9701e97e1ca3b4ca031c54f3751a7f4b5829626c167846784202edafe2959781
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page