Skip to main content

Full-featured proxy connector for aiohttp

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp_proxy-0.1.2.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

aiohttp_proxy-0.1.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

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

Hashes for aiohttp_proxy-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4da16face2df486329f7eef36719da5c2ac7136e756574de06b428c5793b8090
MD5 d19a86c68309402d18f5145cff4c73c6
BLAKE2b-256 0393d7cc02c794a3febbbe7b0fd1b2c7cb31234b2556b9da7bee273c33ae0f6f

See more details on using hashes here.

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

Hashes for aiohttp_proxy-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b955ab883d30fd5452f6b226f0b416fc3905cc5e2b3f023b481e95664ef40667
MD5 ec3eadad19a4e487323bacabbfd20c2e
BLAKE2b-256 9701e97e1ca3b4ca031c54f3751a7f4b5829626c167846784202edafe2959781

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page