Skip to main content

A simple and quick way to get a proxy.

Project description

Documentation in Russian

pip install EasyProxies

См. также https://www.proxyscan.io/api

Пример использования

Напечатает до 20-и прокси ip:port каждый с новой строки:

from EasyProxies import *

my_filters = filters.TypeHTTP | filters.TypeHTTPS  # HTTP или HTTPS прокси
my_filters &= filters.Ping(10) & filters.Uptime(10)  # Пинг не больше 100 и Время безотказной работы 10%
print(*Proxies.get((my_filters & filters.Limit(20))), sep='\n')

тоже самое что и

from EasyProxies import *

print(*Proxies.get(type='http,https', ping=10, uptime=10, limit=20), sep='\n')
# __init__.py
from typing import Union
from EasyProxies import filters

__all__ = ('Proxies', 'filters')

ParamsType = dict[str, Union[str, int]]
ListOfProxy = list[Union[dict[str, Union[str, int, type(None)]], str]]
DEFAULT_FILTERS: filters.Filter = filters.FormatTXT


class Proxies:
    HOST = 'https://www.proxyscan.io/'

    def __init__(self, default: filters.Filter, host: str = HOST):
        """Задаёт фильтры по умолчанию, меняет хост"""
        ...

    @classmethod
    def raw_request(cls, params: Union[ParamsType, str]) -> ListOfProxy: ...

    @classmethod
    def get(cls, filters: Union[filters.Filter, ParamsType, str] = DEFAULT_FILTERS) -> ListOfProxy: ...

    @classmethod
    def download_type(cls, protocol: filters.Type) -> list[str]:
        """Вернёт список готовых прокси"""
        ...

    @classmethod
    def generator(cls, *args, perpetual: bool = True, **kwargs) -> Iterator[ListOfProxy]:
        """
        Генератор прокси, если perpetual,
        то будет генерировать по заданным пораметрам вечно.
        """
        ...

Фильтры

Пакет EasyProxy.filters.

from abc import ABC, abstractmethod
from typing import Any, Union


class Filter(ABC):
    __slots__ = ('value', 'as_dict')
    key = classmethod(property(...))

    @abstractmethod
    def value_validator(self, value): pass

    def __init__(self, *value, joins: dict = None): ...

    def __and__(self, other):  ...  # &

    def __bool__(self) -> bool: ...

    def __eq__(self, other) -> bool: ...

    def __str__(self) -> str: ...


class limitedValues(Filter):
    values = ...


class limitedStringCaseInsensitive(limitedValues):
    def __or__(self, other: limitedValues):  ...  # |


class Number(limitedValues):
    values = None

    def value_validator(self, value): ...


class CC(Filter): ...


class Format(limitedStringCaseInsensitive):
    values = ('json', 'txt')


class Level(limitedStringCaseInsensitive):
    values = ('transparent', 'anonymous', 'elite')


class Type(limitedStringCaseInsensitive):
    values = ('http', 'https', 'socks4', 'socks5')


class LastCheck(Number): ...


class Port(Number): ...


class Ping(Number): ...


class Limit(Number): values = range(1, 21)


class Uptime(Number): values = range(1, 101)


class Country(CC): ...


class NotCountry(CC): ...


ALL_FILTERS = [Format, Level, Type, LastCheck, Port, Ping, Limit, Uptime, Country, NotCountry]


def dict_to_filter(flt: Union[dict[str, Any], Filter] = None, **kwargs
                   ) -> Filter: ...


# Псевдонимы
Protocol = Type
Last_Check = LastCheck
Not_Country = NotCountry

FormatJSON, FormatTXT = ...
TypeHTTP, TypeHTTPS, TypeSOCKS4, TypeSOCKS5 = ...
LevelTRANSPARENT, LevelANONYMOUS, LevelELITE = ...
TypeSOCKS = Type('socks4', 'socks5')

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

EasyProxies-0.1.6.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

EasyProxies-0.1.6-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file EasyProxies-0.1.6.tar.gz.

File metadata

  • Download URL: EasyProxies-0.1.6.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for EasyProxies-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f323d5f45d87f6ddeaaf1910055afd1b907f9b2fc24a0714b5d97ed3edfed1f1
MD5 a742cad182a77eb1e1bbe97ded585bfc
BLAKE2b-256 b690dfbac3ed91a25b2b87ef910901aa14463de2c234beb3b58772d97db2c1c2

See more details on using hashes here.

File details

Details for the file EasyProxies-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: EasyProxies-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for EasyProxies-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ed58a0c8082a20d6c52a6c80e9451c28fe00dfad480c0225c942a31d33aa6b00
MD5 b7e7064e93a8433fcd49fc93347c0ab7
BLAKE2b-256 cc0c77c9f94051077e7c3e2356e2b05b9f1f871dfd68033ab003820feb43024b

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