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.
- Результат:
Текущий объект данных прокси-сервера.
- Тип результата:
- property password: str | None
Пароль.
- property port: int | 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 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)[исходный код]
Добавляет прокси в систему ротации.
- close()[исходный код]
Закрывает менеджер запросов.
- 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.
- Результат:
Унифицированный контейнер ответа на веб-запросы.
- Тип результата:
- 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.
- Результат:
Унифицированный контейнер ответа на веб-запросы.
- Тип результата:
- remove_proxies()[исходный код]
Удаляет данные используемых прокси.
- request(request_type: RequestsTypes, url: str, **kwargs) WebResponse[исходный код]
Базовый обработчик запроса.
- Параметры:
request_type (RequestsTypes) – Тип запроса.
url (str) – Адрес запроса.
kwargs – Дополнительные аргументы, соответствующие таковым именованным аргументам у конкретных методов запросов.
- Результат:
Унифицированный контейнер ответа на веб-запросы.
- Тип результата:
- 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
Текстовое представление ответа.