WebRequestor

class dublib.WebRequestor.Protocols(*values)[исходный код]

Перечисление типов протоколов.

class dublib.WebRequestor.Proxy(protocol: Protocols | None = None, host: str | None = None, port: int | str | None = None, login: str | None = None, password: str | None = None)[исходный код]

Данные прокси-сервера.

property host: str | None

IP адрес или домен хоста.

property login: str | None

Логин.

parse(proxy: str) Proxy[исходный код]

Парсит данные прокси из строки.

Параметры:

proxy (str) – Строка с данными прокси вида protocol://username:password@host:port.

Результат:

Текущий объект данных прокси-сервера.

Тип результата:

Proxy

property password: str | None

Пароль.

property port: int | None

Номер порта.

property protocol: Protocols | None

Тип протокола подключения.

set_protocol(protocol: Protocols)[исходный код]

Задаёт новый протокол для прокси.

Параметры:

protocol (Protocols) – Тип протокола.

to_dict(force_http: bool = True) dict[str, str][исходный код]

Строит словарь для подключения прокси к requests-подобным библиотекам.

Параметры:

force_http (bool) – Большинство прокси неверно работают при использовании протокола HTTPS. При включённом состоянии для HTTPS-соединения requests будет использоваться http://{proxy} соединение.

Результат:

Словарь данных прокси для подключения к requests-подобным библиотекам.

Тип результата:

dict[str, str]

to_string(force_http: bool = True) str[исходный код]

Возвращает данные прокси в виде строки.

Параметры:

force_http (bool) – Большинство прокси неверно работают при использовании протокола HTTPS. При включённом состоянии для HTTPS-соединения requests будет использоваться http://{proxy} соединение.

Результат:

Строка с данными прокси вида protocol://username:password@host:port

Тип результата:

str

class dublib.WebRequestor.RequestsTypes(*values)[исходный код]

Перечисление типов поддерживаемыйх запросов.

class dublib.WebRequestor.WebConfig[исходный код]

Конфигурация оператора запросов.

add_header(name: str, value: str | int)[исходный код]

Добавляет постоянный заголовок ко всем производимым запросам.

Параметры:
  • name (str) – Имя заголовка.

  • value (str | int) – Значение заголовка.

Исключение:

UserAgentRedefining – Выбрасывается при попытке переопределения заголовка User-Agent. Используйте set_user_agent() вместо этого метода.

property curl_cffi: _curl_cffi_config

Дополнительная конфигурация библиотеки curl_cffi.

property delay: float

Интервал времени между повторами запросов.

enable_logging(status: bool)[исходный код]

Переключает ведение логов при помощи стандартного модуля Python.

Параметры:

status (bool) – Состояние активации.

enable_proxy_protocol_switching(status: bool)[исходный код]

Переключает режим автоматической смены HTTP/HTTPS версий протокола прокси при ошибках. Может привести к значительному увеличению времени запроса.

Параметры:

status (bool) – Состояние активации.

enable_redirecting(status: bool)[исходный код]

Переключает автоматическую переадресацию.

Параметры:

status (bool) – Состояние активации.

enable_ssl_verification(status: bool)[исходный код]

Переключает верификацию SSL.

Параметры:

status (bool) – Состояние активации.

generate_user_agent(os: Iterable[str] = ('Windows', 'Linux', 'Ubuntu', 'Chrome OS', 'Mac OS X', 'Android', 'iOS'), browsers: Iterable[str] = ('Chrome', 'Firefox', 'Edge', 'Opera', ' Safari', 'Android', 'Yandex Browser', 'Samsung Internet', 'Opera Mobile', 'Mobile Safari', 'Firefox Mobile', 'Firefox iOS', 'Chrome Mobile', 'Chrome Mobile iOS', 'Mobile Safari UI/WKWebView', 'Edge Mobile', 'DuckDuckGo Mobile', 'MiuiBrowser', 'Whale', 'Twitter', 'Facebook', 'Amazon Silk'), platforms: Iterable[str] = ('desktop', 'mobile', 'tablet'))[исходный код]

Генерирует случайное значение заголовка User-Agent при помощи библиотеки fake_useragent.

Параметры:
  • os (Iterable[str]) – Операционные системы.

  • browsers (Iterable[str]) – Браузеры.

  • platforms (Iterable[str]) – Платформы.

property good_codes: tuple[int | None]

Список кодов, означающих успешное выполнение запроса.

property headers: dict | None

Словарь заголвоков, приоритетно применяемых ко всем запросам, или None при отсутствии заголовков.

property httpx: _httpx_config

Дополнительная конфигурация библиотеки httpx.

property lib: WebLibs

Тип используемой библиотеки.

property logging: bool

Указывает, требуется ли вести логи при помощи стандартного модуля Python.

property redirecting: bool

Указывает, следует ли выполнять автоматическую переадресацию.

remove_header(name: str)[исходный код]

Удаляет постоянный заголовок.

Параметры:

name (str) – Имя заголовка.

Исключение:

UserAgentRedefining – Выбрасывается при попытке удаления заголовка User-Agent. Используйте set_user_agent() вместо этого метода.

property retries

Количество повторов запроса при неудачном выполнении.

select_lib(lib: WebLibs)[исходный код]

Задаёт тип используемой библиотеки запросов.

Параметры:

lib (WebLibs) – Тип библиотеки.

set_delay(delay: float | int)[исходный код]

Задаёт интервал ожидания между повторными запросами.

Параметры:

delay (float | int) – Интервал в секундах.

set_good_codes(good_codes: Iterable[int | None])[исходный код]

Задаёт набор кодов HTTP, означающих успешное выполнение запроса.

Параметры:

good_codes (Iterable[int | None]) – Набор кодов HTTP. Расширяется значением None, которое возникает при обработке внутреннего исключения.

set_retries_count(retries: int)[исходный код]

Задаёт количество повторов запроса при неудачном выполнении.

Параметры:

retries (int) – Количество повторов. Первый запрос не учитывается в подсчёте.

set_user_agent(user_agent: str | None)[исходный код]

Задаёт значение заголовка User-Agent.

Параметры:

user_agent (str | None) – Значение заголовка или None для удаления.

property switch_proxy_protocol: bool

Указывает, следует ли автоматически переключаться между HTTP/HTTPS версиями протокола прокси при ошибках запроса.

property user_agent: str | None

Значение заголовка User-Agent.

property verify_ssl: bool

Указывает, необходимо ли проводить верификацию SSL.

class dublib.WebRequestor.WebLibs(*values)[исходный код]

Перечисление поддерживаемых библиотек запросов.

class dublib.WebRequestor.WebRequestor(config: WebConfig | None = None)[исходный код]

Оператор запросов.

add_proxies(proxies: Iterable[Proxy] | Proxy)[исходный код]

Добавляет прокси в систему ротации.

Параметры:

proxy (Iterable[Proxy] | Proxy) – Набор данных прокси-серверов.

close()[исходный код]

Закрывает менеджер запросов.

property config: WebConfig

Конфигурация оператора запросов.

property cookies: dict | None

Словарь установленных cookies.

get(url: str, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None) WebResponse[исходный код]

Отправляет GET-запрос.

Параметры:
  • url (str) – Адрес запроса.

  • params (dict | None) – Словарь параметров запроса. По умолчанию None.

  • headers (dict | None) – Словарь заголовков. По умолчанию None.

  • cookies (dict | None) – Словарь cookies. По умолчанию None.

Результат:

Унифицированный контейнер ответа на веб-запросы.

Тип результата:

WebResponse

post(url: str, params: dict | None = None, headers: dict | None = None, cookies: dict | None = None, data: Any = None, json: dict | None = None) WebResponse[исходный код]

Отправляет POST-запрос.

Параметры:
  • url (str) – Адрес запроса.

  • params (dict | None) – Словарь параметров запроса. По умолчанию None.

  • headers (dict | None) – Словарь заголовков. По умолчанию None.

  • cookies (dict | None) – Словарь cookies. По умолчанию None.

  • data (Any) – Данные запроса. По умолчанию None.

  • json (dict | None) – Словарь для сериализации и передачи в качестве JSON. По умолчанию None.

Результат:

Унифицированный контейнер ответа на веб-запросы.

Тип результата:

WebResponse

remove_proxies()[исходный код]

Удаляет данные используемых прокси.

request(request_type: RequestsTypes, url: str, **kwargs) WebResponse[исходный код]

Базовый обработчик запроса.

Параметры:
  • request_type (RequestsTypes) – Тип запроса.

  • url (str) – Адрес запроса.

  • kwargs – Дополнительные аргументы, соответствующие таковым именованным аргументам у конкретных методов запросов.

Результат:

Унифицированный контейнер ответа на веб-запросы.

Тип результата:

WebResponse

class dublib.WebRequestor.WebResponse(config: WebConfig | None = None)[исходный код]

Унифицированный контейнер ответа на веб-запросы.

property content: bytes | None

Бинарное представление ответа.

property exceptions: tuple[Exception]

Набор возникших во время выполнения запросов исключений.

property json: dict | None

Десериализованное в словарь из JSON представление ответа.

property ok: bool

Состояние: можно ли считать запрос успешным.

parse_response(response: Response | Response | Response, parse_json: bool = True)[исходный код]

Парсит ответ библиотеки в унифицированный формат.

Параметры:
  • response (requests.Response | httpx.Response | curl_cffi_requests.Response) – Ответ от библиотеки.

  • parse_json (bool) – Указывает, следует ли произвести попытку десериализации данных в JSON.

push_exception(exception: Exception)[исходный код]

Добавляет исключение во внутреннее хранилище ответа.

Параметры:

exception (Exception) – Возникшее во время запроса исключение.

set_status_code(code: int | None)[исходный код]

Задаёт HTTP код ответа.

Параметры:

code (int | None) – HTTP код ответа или None при отсутствии такового.

set_text(text: str | None, parse_json: bool = True)[исходный код]

Задаёт строкове представление ответа, также интерпретируемое в набор байтов.

Параметры:
  • text (str | None) – Строковое представление ответа или None при отсутствии такового.

  • parse_json (bool) – Указывает, следует ли произвести попытку десериализации строки в JSON.

property status_code: int | None

Код ответа.

property text: str | None

Текстовое представление ответа.