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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pyaklass-1.1.0-py3-none-any.whl
(15.2 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b392386864bd1557f48649b1734b63a28a9f8c4e63cfa4e321178ab9213edf57
|
|
| MD5 |
e36d3f1e3ca1a634bf296c37ba25b7db
|
|
| BLAKE2b-256 |
ddcc70d9ba64393996dfccc32b8fa3cc23802c9245011e8b614f6e663bf9ac1f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a63170f4efc6640e5ca2f5f29a4e734b04f7e45b5c3fdf226897cdd5a0b1dc65
|
|
| MD5 |
08b212c6761c6b8e62e0c08643b0643e
|
|
| BLAKE2b-256 |
71b6737310eff2e89a1bc734ce702143bc4a21562deef46f90acb135b778a5cc
|