Skip to content

Sync & asyncio (Requests & AIOHTTP) proxy rotator + utils for actproxy API & services.

License

Notifications You must be signed in to change notification settings

bitnom/actproxy

Repository files navigation

actproxy

Python package providing actproxy.com API access and proxy rotation methods for requests (synchronous) and aiohttp (asyncio). Can also be used independently. Supports socks5, http/https, and ipv4/ipv6 as per actproxy's services.

PyPI license

Quick-Start (AIOHTTP)

import actproxy
from aiohttp import ClientSession


async def main():
    actproxy_api_keys = [
        "xxxxxxxxxxxxxxxxxxxxxxxx",
        "xxxxxxxxxxxxxxxxxxxxxxxx"
    ]
    # Initialize API. Also returns your proxies.
    await actproxy.aioinit(actproxy_api_keys)
    # Use a new AIOHTTP connector which rotates & uses the next proxy.
    async with ClientSession(connector=actproxy.aiohttp_rotate()) as session:
        url = "http://dummy.restapiexample.com/api/v1/employees"
        async with session.get(url) as resp:
            if resp.status == 200:
                resp_json = await resp.json()
                print(resp_json)

Quick-Start (Requests)

import actproxy
import requests

actproxy_api_keys = [
    "xxxxxxxxxxxxxxxxxxxxxxxx",
    "xxxxxxxxxxxxxxxxxxxxxxxx"
]
# Initialize API. Also returns your proxies.
actproxy.init(actproxy_api_keys)
url = "http://dummy.restapiexample.com/api/v1/employees"
resp = requests.get(url, proxies=actproxy.rotate())
if resp.status_code == 200:
    resp_json = resp.json()
    print(resp_json)

Methods

actproxy.aioinit(api_keys: List = None, output_format: DumpFormat = 'json', get_userpass: Boolean = True) -> Union[FlatList, str, None]

Fetches your proxies from ActProxy & returns them. Must be run before the other aiohttp functions.

actproxy.init(api_keys: List[str], output_format: DumpFormat = 'json', get_userpass: Any = True) -> Union[FlatList, str, None]

Fetches your proxies from ActProxy & returns them. Must be run before the other synchronous functions.

actproxy.aiohttp_rotate(protocol: ProxyProto/str, return_proxy: Boolean = False) -> Union[ProxyConnector, Tuple[Data, ProxyConnector]]

Returns an aiohttp connector which uses the next proxy from your list.

actproxy.async_rotate_fetch(url: str, protocol: ProxyProto/str = 'socks5', return_proxy: Boolean = False) -> Data

Rotate proxies and perform a GET request. Returns a Data object of response.status_code, response.text, and response.headers.

actproxy.rotate(protocol: ProxyProto = 'socks5') -> Data

Returns the next proxy from your list. Return variable is suitable for use with requests[socks].

actproxy.random_proxy(protocol: ProxyProto = 'socks5') -> Data

Returns a random proxy from your list. Return variable is suitable for use with requests[socks].

actproxy.aiohttp_random(protocol: ProxyProto = 'socks5', return_proxy: Boolean = False) -> Union[ProxyConnector, Tuple[Data, ProxyConnector]]

Returns an aiohttp connector which uses uses a random proxy from your list.

actproxy.one_hot_proxy() -> Data

Similar to rotate() but returns a single proxy dict/object for use in places other than aiohttp or requests.

Changelog

0.1.9 - 11/09/2020 : New asyncio rotation methods based on python_socks.

0.1.8 - 10/28/2020 : Fixed versioning typo.

0.1.7 - 10/28/2020 : Relax Python version constraint (3.8-4.0).

0.1.6 - 10/24/2020 : Lock aiohttp version fixing aiohttp #5112

0.1.5 - 10/24/2020 : Rotator bug fix. CSV fix. Better type-hints & coverage.

0.1.4 - 10/23/2020 : Support multiple API keys. Unit tests. Fixes.

0.1.3 - 9/29/2020 : Minor fixes and addition of docstrings.

0.1.2 - 9/28/2020 : Initial release version.

About

Sync & asyncio (Requests & AIOHTTP) proxy rotator + utils for actproxy API & services.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published