Перейти к содержанию

Быстрый старт

Установка

Рекомендуемый способ (через uv):

uv add kwork

Альтернатива (pip):

pip install kwork

Если нужен socks5-прокси:

pip install "kwork[proxy]"

Подключение и контекстный менеджер

Клиент держит сессию и авторизацию, поэтому удобнее работать через async with:

import asyncio
from kwork import Kwork


async def main() -> None:
    async with Kwork(login="login", password="password") as api:
        me = await api.get_me()
        print(me.username)


asyncio.run(main())

Таймауты и ретраи

В конструкторе можно настроить таймауты и повторные попытки (429/5xx и сетевые ошибки):

from kwork import Kwork

api = Kwork(
    login="login",
    password="password",
    timeout=30.0,
    retry_max_attempts=3,
    retry_backoff_base=0.5,
    retry_backoff_max=8.0,
    retry_jitter=0.1,
    relogin_on_auth_error=True,
)

Частые операции

Получить собственный профиль

me = await api.get_me()

Список проектов (биржа)

projects = await api.get_projects(
    categories_ids=[11, 79],
    price_from=1000,
    price_to=50000,
    hiring_from=50,
    page=1,
)

Web-login (куки для kwork.ru)

await api.web_login(url_to_redirect="/exchange")

Дальше можно выполнять web-действия через api.web, например отклик на проект. Детали: гайд.