from concurrent.futures import ThreadPoolExecutor from bs4 import BeautifulSoup from yaspin import yaspin import itertools import endpoints import requests import json FIRSTNAME = "Иванов" LASTNAME = "Василий" CLASSTXT = "9А" TEST_ID = int(input("Enter test ID: ")) def begin_test(id: int, fisrstname: str, lastname: str, classtxt: str) -> dict: data = { "member": { "id": False, "lastname": lastname, "firstname": fisrstname, "classTxt": classtxt }, "related": 0 } return json.loads(requests.post(endpoints.BEGIN_TEST(id), json=data).content) def get_test(uuid: str) -> dict: content = requests.get(endpoints.DO_TEST(uuid)).content soup = BeautifulSoup(content, "html.parser") return json.loads(soup.select("body > script")[2].text.replace("window.backend = ", "").strip()) def complete_test(uuid: str) -> int: content = requests.get(endpoints.COMPLETE_TEST(uuid)).content soup = BeautifulSoup(content, "html.parser") return int(soup.select("div.test_main__results_statitem")[2].text.strip().replace("Выполнено верно\n","")) test = begin_test(TEST_ID, FIRSTNAME, LASTNAME, CLASSTXT)['uuid'] print(get_test(test)) complete_test(test)