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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f323d5f45d87f6ddeaaf1910055afd1b907f9b2fc24a0714b5d97ed3edfed1f1 |
|
MD5 | a742cad182a77eb1e1bbe97ded585bfc |
|
BLAKE2b-256 | b690dfbac3ed91a25b2b87ef910901aa14463de2c234beb3b58772d97db2c1c2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed58a0c8082a20d6c52a6c80e9451c28fe00dfad480c0225c942a31d33aa6b00 |
|
MD5 | b7e7064e93a8433fcd49fc93347c0ab7 |
|
BLAKE2b-256 | cc0c77c9f94051077e7c3e2356e2b05b9f1f871dfd68033ab003820feb43024b |