DuckoNet для Python
DuckoNet отправляет HTTP-запросы с сетевыми профилями Chrome и Microsoft Edge. Вы выбираете браузер и передаёте API-ключ; библиотека подготавливает установку, проверяет доступ и загружает подходящий подписанный профиль.
Первый запрос
Установите пакет для своей системы и задайте переменную окружения DUCKONET_API_KEY. Затем выполните:
import os
from duckonet import HttpClient
with HttpClient(api_key=os.environ['DUCKONET_API_KEY'], browser='chrome') as client:
response = client.get('https://example.com/')
response.raise_for_status()
print(response.text)
Контекст with открывает клиент и освобождает его ресурсы после работы. Внутри одного контекста можно отправить несколько запросов. Для асинхронного кода есть AsyncHttpClient.
Что читать дальше
- Установка — Windows и Linux, API-ключ, обновление пакета и выбор версии браузера.
- Запросы и примеры — параметры URL, JSON, формы, файлы и скачивание по частям.
- Справочник API — все параметры клиента, методы и поля ответа.
- Cookies — автоматическая обработка, ручное добавление и сохранение между запусками.
- Прокси и управление запросами — протоколы, потоки, диагностика, ошибки и низкоуровневые методы.
- Client и AsyncClient — запросы с браузерным контекстом и ответы в виде байтов.
- Установка и профили: расширенный API — прямое управление через
Distribution. - Возможности и ограничения — поддерживаемые системы, браузеры и пределы запросов.
Платформа и возможности
| Компонент | Поддержка в этом выпуске |
|---|---|
| Python | CPython 3.12, стандартная сборка с GIL |
| Windows | x64; системные условия — в инструкции установки |
| Linux | Ubuntu 24.04, x64 |
| Браузерные профили | Chrome 150 и Edge 151 — Free; Chrome 151–155 и Edge 156 — Pro |
| Интерфейсы | Синхронные и асинхронные запросы |
Список профилей определяется каталогом и правами API-ключа. Ограничения количества потоков по тарифу нет; технические пределы описаны в справочнике.
Выбор API
Для HTTP-запросов приложения используйте HttpClient или AsyncHttpClient. Они принимают параметры URL, JSON, формы и файлы, обрабатывают перенаправления и возвращают HttpResponse с .text, .json() и .raise_for_status(). Cookies сохраняются между запросами одного клиента автоматически.
Client и AsyncClient подходят для запросов с явно заданным браузерным контекстом. Они возвращают Response с телом в байтах; сериализация данных и обработка ответа остаются в вашем коде. Если контекст не задан, клиент использует контекст открытия страницы. Это другой способ работы с библиотекой, а не устаревший API.
Distribution нужен для прямого управления установкой, выбором профиля и созданием сессий. Для первого запроса он не требуется.
Браузерный профиль задаёт параметры TLS и HTTP. При этом метод, адрес, заголовки и тело выбирает ваше приложение. HttpClient не исполняет браузерный Fetch: в частности, не проверяет CORS и не отправляет предварительный запрос preflight. Поле assurance='custom-request' у ответа обозначает именно этот способ отправки, а не результат измерения отпечатка.
Профили и соединения
Microsoft Edge
Укажите browser="edge"; остальной HTTP API общий для обоих браузеров. Выбор версии Edge и примеры.