Skip to main content

Module for communicating with a russian education website - YaKlass.

Project description

PYaKlass

Быстрый асинхронный модуль для работы с ЯКлассом.

Функции:

  • Обход капчи
  • Получение активных работ
  • Получение всех работ (На данный момент только первой страницы)

Примеры

Получение активных работ

from multiprocessing.managers import SyncManager

from pyaklass import Account

# Иначе: manager.start() и manager.shutdown()
with SyncManager() as manager:
    account = Account('login', 'password', manager)
    await account.login()

    testworks = await account.get_new_testworks()  # -> List[dict[str, Any]]
    print(testworks)

Работа с несколькими аккаунтами

from pyaklass import Account
from pyaklass.manager import AccountManager

# Здесь не требуется указывать SyncManager, так как AccountManager создает его сам.
# При различных менеджерах есть шанс блокировки вашего IP сервисом!
manager = AccountManager(
    Account('login1', 'password1'),
    Account('login2', 'password2'),
    Account('login3', 'password3'),
)
if not any(await manager.prepare()):
    print('Не получилось войти ни в один аккаунт.')

testworks_per_account = await manager.get_new_testworks()  # -> List[List[dict]]
print(testworks)

Получение результатов прошедших работ

Примечание: Пользователь может получить только свои результаты.

from multiprocessing.managers import SyncManager

from pyaklass import Account

# Иначе: manager.start() и manager.shutdown()
with SyncManager() as manager:
    account = Account('login', 'password', manager)
    await account.login()

    results = await account.get_results(testwork_id=..., result_id=...)
    print(results)

TODO

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

  • Брутфорс тестовых заданий
  • Парсинг результатов, времени прохождения, введенных ответов
  • Парсинг ФИО учителя, задавшего работу
  • Использовать API пагинации вместо парсинга списка работ
    • https://www.yaklass.ru/ajax/TestWork/GetStudentTestWorksAjax?type=FinishedTestWorks&page=1&from=%2FTestWork

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyaklass-1.1.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyaklass-1.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file pyaklass-1.1.0.tar.gz.

File metadata

  • Download URL: pyaklass-1.1.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for pyaklass-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b392386864bd1557f48649b1734b63a28a9f8c4e63cfa4e321178ab9213edf57
MD5 e36d3f1e3ca1a634bf296c37ba25b7db
BLAKE2b-256 ddcc70d9ba64393996dfccc32b8fa3cc23802c9245011e8b614f6e663bf9ac1f

See more details on using hashes here.

File details

Details for the file pyaklass-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyaklass-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for pyaklass-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a63170f4efc6640e5ca2f5f29a4e734b04f7e45b5c3fdf226897cdd5a0b1dc65
MD5 08b212c6761c6b8e62e0c08643b0643e
BLAKE2b-256 71b6737310eff2e89a1bc734ce702143bc4a21562deef46f90acb135b778a5cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page