mirror of
https://github.com/house-of-vanity/fesmoo_perdoliq.git
synced 2025-08-21 16:17:15 +00:00
khui
This commit is contained in:
@@ -7,3 +7,5 @@ password='40201'
|
|||||||
app = Main(username, password)
|
app = Main(username, password)
|
||||||
|
|
||||||
app.auth()
|
app.auth()
|
||||||
|
app.get_tests()
|
||||||
|
print(app.start_test(3,0))
|
50
main.py
50
main.py
@@ -13,6 +13,7 @@ class Main:
|
|||||||
self.username = username
|
self.username = username
|
||||||
self.SessionId = ''
|
self.SessionId = ''
|
||||||
self.name = ''
|
self.name = ''
|
||||||
|
self.subjects = {}
|
||||||
|
|
||||||
def auth(self):
|
def auth(self):
|
||||||
r = requests.get(settings.fesmu_root_url)
|
r = requests.get(settings.fesmu_root_url)
|
||||||
@@ -25,7 +26,7 @@ class Main:
|
|||||||
r = requests.post(
|
r = requests.post(
|
||||||
settings.fesmu_root_url,
|
settings.fesmu_root_url,
|
||||||
data=settings.merge(
|
data=settings.merge(
|
||||||
settings.scam_data, {
|
settings.scam_data_1, {
|
||||||
'ctl00$MainContent$TextBox1': self.username,
|
'ctl00$MainContent$TextBox1': self.username,
|
||||||
'ctl00$MainContent$TextBox2': self.password,
|
'ctl00$MainContent$TextBox2': self.password,
|
||||||
}),
|
}),
|
||||||
@@ -44,5 +45,48 @@ class Main:
|
|||||||
r = requests.get(
|
r = requests.get(
|
||||||
settings.fesmu_root_url + 'studtst1.aspx',
|
settings.fesmu_root_url + 'studtst1.aspx',
|
||||||
cookies={'ASP.NET_SessionId': self.SessionId})
|
cookies={'ASP.NET_SessionId': self.SessionId})
|
||||||
for tag in soup.find_all(re.compile("ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2_LBI\dT0")):
|
soup = BeautifulSoup(r.text, "html.parser")
|
||||||
print(tag.name)
|
# parse subjects
|
||||||
|
for subject in soup.find_all(class_="dxeListBoxItem_Aqua dxeFTM"):
|
||||||
|
if subject.get_text() != '\xa0':
|
||||||
|
self.subjects.update({subject.get_text(): []})
|
||||||
|
logging.info('Found subject %s', subject.get_text())
|
||||||
|
logging.info('Found %s subjects', len(self.subjects))
|
||||||
|
# parse tests per subject
|
||||||
|
i = 0
|
||||||
|
for subject in self.subjects:
|
||||||
|
r = requests.post(
|
||||||
|
settings.fesmu_root_url + 'studtst1.aspx',
|
||||||
|
data=settings.merge(settings.scam_data_2,
|
||||||
|
{'ctl00$MainContent$hfPred': i}),
|
||||||
|
cookies={'ASP.NET_SessionId': self.SessionId})
|
||||||
|
soup = BeautifulSoup(r.text, "html.parser")
|
||||||
|
for test in soup.find_all(class_="dxeListBoxItem_Aqua dxeLTM"):
|
||||||
|
if test.get_text() != '\xa0':
|
||||||
|
self.subjects[subject].append(test.get_text())
|
||||||
|
logging.info('%s - Found test %s' % (subject,
|
||||||
|
test.get_text()))
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
#print(self.subjects)
|
||||||
|
|
||||||
|
def start_test(self, pred, test):
|
||||||
|
# start test
|
||||||
|
r = requests.post(
|
||||||
|
settings.fesmu_root_url + 'studtst1.aspx',
|
||||||
|
data=settings.merge(
|
||||||
|
settings.scam_data_3, {
|
||||||
|
'ctl00$MainContent$hfPred': pred,
|
||||||
|
'ctl00$MainContent$hfTest': test
|
||||||
|
}),
|
||||||
|
cookies={'ASP.NET_SessionId': self.SessionId})
|
||||||
|
# get test content
|
||||||
|
r = requests.get(
|
||||||
|
settings.fesmu_root_url + 'studtst2.aspx',
|
||||||
|
cookies={'ASP.NET_SessionId': self.SessionId})
|
||||||
|
soup = BeautifulSoup(r.text, "html.parser")
|
||||||
|
_a = soup.find(class_='btntest')
|
||||||
|
q=[]
|
||||||
|
for i in _a.find_all(id=re.compile("ctl00_MainContent_ASPxButton.*_B")):
|
||||||
|
q.append(i)
|
||||||
|
return(len(q))
|
86
settings.py
86
settings.py
@@ -1,6 +1,13 @@
|
|||||||
fesmu_root_url = 'http://www.fesmu.ru/eport/eport/'
|
fesmu_root_url = 'http://www.fesmu.ru/eport/eport/'
|
||||||
|
|
||||||
scam_data = {
|
|
||||||
|
def merge(x, y):
|
||||||
|
z = x.copy() # start with x's keys and values
|
||||||
|
z.update(y) # modifies z with y's keys and values & returns None
|
||||||
|
return z
|
||||||
|
|
||||||
|
|
||||||
|
scam_data_1 = {
|
||||||
'ctl00$MainContent$UserText':
|
'ctl00$MainContent$UserText':
|
||||||
'',
|
'',
|
||||||
'ctl00$MainContent$PassText':
|
'ctl00$MainContent$PassText':
|
||||||
@@ -27,7 +34,76 @@ scam_data = {
|
|||||||
'1_42,1_75,2_27'
|
'1_42,1_75,2_27'
|
||||||
}
|
}
|
||||||
|
|
||||||
def merge(x, y):
|
scam_data_2 = {
|
||||||
z = x.copy() # start with x's keys and values
|
'ctl00_MainContent_ToolkitScriptManager1_HiddenField':
|
||||||
z.update(y) # modifies z with y's keys and values & returns None
|
'',
|
||||||
return z
|
'__EVENTTARGET':
|
||||||
|
'',
|
||||||
|
'__EVENTARGUMENT':
|
||||||
|
'',
|
||||||
|
'__VIEWSTATE':
|
||||||
|
'/wEPDwULLTE3NjQ0Njk1MzYPZBYCZg9kFgICAw9kFgJmD2QWAgIJD2QWBAIDD2QWAmYPZBYCZg9kFgJmD2QWAgIBDxQrAAUPFgIeD0RhdGFTb3VyY2VCb3VuZGdkZGQ8KwAHAQYPZBAWAgIBAgIWAhQrAAEWAh4PQ29sVmlzaWJsZUluZGV4ZhQrAAEWAh8BAgFkFgBkAgcPZBYCZg9kFgJmD2QWAmYPZBYCAgEPFCsABWRkZDwrAAcBBg9kEBYCZgIBFgIUKwABFgIfAWYUKwABFgIfAQIBZBYAZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAwUdY3RsMDAkTWFpbkNvbnRlbnQkQVNQeEJ1dHRvbjcFHWN0bDAwJE1haW5Db250ZW50JEFTUHhCdXR0b24xBR1jdGwwMCRNYWluQ29udGVudCRBU1B4QnV0dG9uOL71BMGK5LGuFoieB2pc2OORpg/477guTu+aq9j1FDB7',
|
||||||
|
'__VIEWSTATEGENERATOR':
|
||||||
|
'847F47AD',
|
||||||
|
'ctl00$MainContent$hfTest':
|
||||||
|
'-1',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2DeletedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2InsertedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2CustomCallback':
|
||||||
|
'',
|
||||||
|
'ctl00$MainContent$ASPxCallbackPanel1$ASPxListBox2':
|
||||||
|
'System.Data.DataRowView',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3DeletedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3InsertedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3CustomCallback':
|
||||||
|
'',
|
||||||
|
'ctl00$MainContent$ASPxCallbackPanel2$ASPxListBox3':
|
||||||
|
'',
|
||||||
|
'DXScript':
|
||||||
|
'1_42,1_75,2_27,2_34,2_40,1_41,2_36',
|
||||||
|
'__CALLBACKID':
|
||||||
|
'ctl00$MainContent$ASPxCallbackPanel2',
|
||||||
|
'__CALLBACKPARAM':
|
||||||
|
'c0:',
|
||||||
|
'__EVENTVALIDATION':
|
||||||
|
'/wEdAAdJe/IodYZPo1MYmga2VNNOI7ZJDWlRgaefdPW8BTEVtXw+ikVKJJfrT0ndBbXKBTA39nUTQDb0GEkh6LDT5SpRsAIaIhbklmBqr8w+PxD292wBCiQy8HT9gxcspUtWdqpbDCDdUSb6jcSCho5zpwlS5fp1BGkKOATquDwoQUIst0axsj2qJ2rkYBJm8oFR9hc=',
|
||||||
|
}
|
||||||
|
|
||||||
|
scam_data_3 = {
|
||||||
|
'ctl00_MainContent_ToolkitScriptManager1_HiddenField':
|
||||||
|
'',
|
||||||
|
'__EVENTTARGET':
|
||||||
|
'',
|
||||||
|
'__EVENTARGUMENT':
|
||||||
|
'',
|
||||||
|
'__VIEWSTATE':
|
||||||
|
'/wEPDwULLTE3NjQ0Njk1MzYPZBYCZg9kFgICAw9kFgJmD2QWAgIJD2QWBAIDD2QWAmYPZBYCZg9kFgJmD2QWAgIBDxQrAAUPFgIeD0RhdGFTb3VyY2VCb3VuZGdkZGQ8KwAHAQYPZBAWAgIBAgIWAhQrAAEWAh4PQ29sVmlzaWJsZUluZGV4ZhQrAAEWAh8BAgFkFgBkAgcPZBYCZg9kFgJmD2QWAmYPZBYCAgEPFCsABWRkZDwrAAcBBg9kEBYCZgIBFgIUKwABFgIfAWYUKwABFgIfAQIBZBYAZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAwUdY3RsMDAkTWFpbkNvbnRlbnQkQVNQeEJ1dHRvbjcFHWN0bDAwJE1haW5Db250ZW50JEFTUHhCdXR0b24xBR1jdGwwMCRNYWluQ29udGVudCRBU1B4QnV0dG9uOL71BMGK5LGuFoieB2pc2OORpg/477guTu+aq9j1FDB7',
|
||||||
|
'__VIEWSTATEGENERATOR':
|
||||||
|
'847F47AD',
|
||||||
|
'__EVENTVALIDATION':
|
||||||
|
'/wEdAAdJe/IodYZPo1MYmga2VNNOI7ZJDWlRgaefdPW8BTEVtXw+ikVKJJfrT0ndBbXKBTA39nUTQDb0GEkh6LDT5SpRsAIaIhbklmBqr8w+PxD292wBCiQy8HT9gxcspUtWdqpbDCDdUSb6jcSCho5zpwlS5fp1BGkKOATquDwoQUIst0axsj2qJ2rkYBJm8oFR9hc=',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2DeletedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2InsertedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel1_ASPxListBox2CustomCallback':
|
||||||
|
'',
|
||||||
|
'ctl00$MainContent$ASPxCallbackPanel1$ASPxListBox2':
|
||||||
|
'System.Data.DataRowView',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3DeletedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3InsertedItems':
|
||||||
|
'',
|
||||||
|
'ctl00_MainContent_ASPxCallbackPanel2_ASPxListBox3CustomCallback':
|
||||||
|
'',
|
||||||
|
'ctl00$MainContent$ASPxCallbackPanel2$ASPxListBox3':
|
||||||
|
'System.Data.DataRowView',
|
||||||
|
'ctl00$MainContent$ASPxButton1':
|
||||||
|
'',
|
||||||
|
'DXScript':
|
||||||
|
'1_42,1_75,2_27,2_34,2_40,1_41,2_36',
|
||||||
|
}
|
Reference in New Issue
Block a user