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.FormatTXT & filters.Limit(20))), sep='\n')
# __init__.py
from EasyProxies import filters

ParamsType = dict[str, Union[str, int]]
ProxyData = TypeVar('ProxyData', dict[str, Union[str, int, type(None)]], str)
ListOfProxy = list[ProxyData]
DEFAULT_FILTERS = 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]:
        """Вернёт список готовых прокси"""
        ...

Фильтры

Пакет EasyProxy.filters.

class Filter(ABC):
    key = ...

    @abstractmethod
    def value_validator(self, value): pass

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

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

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


class limitedValues(Filter):
    values = ...


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


class Number(limitedValues):
    values = None
    ...


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): ...


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

FormatJSON, FormatTXT = ...
TypeHTTP, TypeHTTPS, TypeSOCKS4, TypeSOCKS5 = ...
LevelTRANSPARENT, LevelANONYMOUS, LevelELITE = ...
TypeSOCKS = TypeSOCKS4 | TypeSOCKS5

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.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

EasyProxies-0.1.3-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: EasyProxies-0.1.3.tar.gz
  • Upload date:
  • Size: 4.7 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.3.tar.gz
Algorithm Hash digest
SHA256 faccb37aa5f31af7635e906aebd5506c69c58b5948a67d9115d12762af1d06b9
MD5 05c4a610c6f2df117b289480dc4d07f3
BLAKE2b-256 a47b6c65468b31c061e1ececd61ddae477c989c9e13ad7bde3d824ef95e7c5c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: EasyProxies-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c5e9fcd78787498ca5ce50c25fe0de89fd0217127be957c8d569a8054048bc83
MD5 68cbeec2346d38152fccabbb8e03eae7
BLAKE2b-256 c86de9b698341ea41a351a5731eb231d5a771081e9e6e8ca716dbd2db7747e7c

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