DuckoNetДокументация 0.11.5Документация DuckoLab
Разделы

Возможности и ограничения

DuckoNet 0.11.5 предоставляет синхронный и асинхронный HTTP-клиент с браузерными сетевыми профилями. Библиотека сама подготавливает установку и обновляет подписанные профили при открытии клиента. Пользователь указывает API-ключ и браузер.

Системы и браузеры

КомпонентПоддерживается
PythonCPython 3.12, стандартная сборка с GIL
Windowsx64; системные условия — в инструкции установки
LinuxUbuntu 24.04, x64
FreeChrome 150; Microsoft Edge 151
ProChrome 151–155; Microsoft Edge 156

Конкретные полные версии перечислены в инструкции установки. Выбор ограничивается доступными профилями и правами API-ключа. Firefox, Safari, Android, macOS, ARM и другие версии Python не поддерживаются этим пакетом.

Запросы и ответы

HttpClient и AsyncHttpClient поддерживают параметры URL, JSON, формы, байтовые тела и файлы multipart. Они обрабатывают перенаправления, сохраняют повторяющиеся заголовки и автоматически используют cookies. Ответ можно получить целиком либо прочитать по частям. Для прямой работы с браузерным контекстом и ответами в байтах существуют Client и AsyncClient.

Доступны HTTP/1.1, HTTP/2 и HTTP/3. У HttpClient режимы protocol='h3' и protocol='auto' допускают HTTP/2 и переход на HTTP/3 после получения подходящего объявления сервера. Первый запрос поэтому не обязан использовать QUIC. Фактический протокол указан в response.protocol. Выбор режима подробно описан в разделе Прокси и управление.

НастройкаЗначение по умолчаниюМаксимум или ограничение
Таймаут запроса30 секунд300 секунд на подготовку и выполнение запроса, включая перенаправления и чтение
Отправляемое тело—16 MiB вместе с разделителями multipart; целиком подготавливается в памяти
Тело ответа в памяти1 MiB64 MiB; для больших ответов используйте stream() или consume()
Заголовки ответа64 KiB1 MiB
Перенаправления20До 100; переход с HTTPS на HTTP требует allow_downgrade=True
Маршруты одного клиентаОдин начальныйДо 8 сочетаний протокола и прокси за время жизни клиента

Лимит потоков тарифом не устанавливается. Доступная параллельность зависит от ресурсов системы и настроек сессий. Пределы размеров и маршрутов действуют на обоих тарифах.

Прокси, URL и данные

Прокси задаётся явно: строкой URL или ProxyRoute. Поддерживаются HTTP, HTTPS, SOCKS5 и SOCKS5H при наличии соответствующих возможностей у профиля. В 0.11.5 HTTP/3 к сайту предоставляется через явный MasqueProxy с HTTPS/H2 CONNECT-UDP; обычные HTTP/SOCKS URL не дают UDP-туннель. Параметры MASQUE. При отказе прокси библиотека не переключается на прямое соединение.

URL должен быть абсолютным адресом HTTP(S). Домен с Unicode-символами не преобразуется автоматически в IDNA. IPv6-адрес непосредственно в URL у HttpClient не поддерживается. Фрагмент после # не отправляется серверу.

Cookies сохраняются в памяти клиента. Для использования после перезапуска нужно вызвать export_data(), сохранить результат и затем восстановить его через import_data(). Каталог state_dir хранит установку библиотеки, а не пользовательские cookies.

Тело gzip-ответа распаковывается автоматически. Content-Length при этом может содержать размер сжатого тела; для размера полученных данных используйте len(response.content).

В 0.11.5 WebSocket предоставляется HttpClient/AsyncHttpClient через HTTP/1.1 Upgrade со сжатием и sync/async методами. WebSocket-over-H2/H3 отсутствует. Потоковая отправка тела HTTP-запроса и отдельные HTTP таймауты подключения и чтения не предоставляются этим API.

Что означает браузерный профиль

Профиль задаёт параметры TLS и HTTP выбранной версии браузера. Сам запрос — его адрес, метод, заголовки и тело — формирует приложение. Произвольный набор пользовательских заголовков может отличаться от того, который отправил бы браузер.

HttpClient не исполняет браузерный Fetch: он не проверяет CORS и не отправляет preflight. Поле assurance='custom-request' отмечает этот режим работы. Диагностика показывает логические заголовки запроса, а не байтовую запись TLS или кадров HTTP/2 и HTTP/3.

Полные параметры и правила обработки ответа находятся в справочнике API. Примеры запросов, файлов и потоков — в практическом руководстве.

Текст страницы