Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from urllib.request import urlopen
- from bs4 import BeautifulSoup
- import datetime
- txt=open(r'C:\Users\MAKS\Desktop\html.txt','r')
- lessons=[ # constuction: 'name of lesson',[marks],[average score]
- ['Астрономия',[],[]],
- ['Бел.лит.',[],[]],
- ['Бел.яз.',[],[]],
- ['Биология',[],[]],
- ['Всемир.ист.',[],[]],
- ['География',[],[]],
- ['ДП/МП',[],[]],
- ['Информ.',[],[]],
- ['Ист.Бел.',[],[]],
- ['Матем.',[],[]],
- ['Нем.яз.',[],[]],
- ['Обществов.',[],[]],
- ['Рус.лит.',[],[]],
- ['Рус.яз.',[],[]],
- ['Физика',[],[]],
- ['Физ.к.изд.',[],[]],
- ['Химия',[],[]],
- ['ЧЗС',[],[]]
- ]
- b=0
- quarter=[ #даты начала четвертей
- datetime.date(2019,9,2),
- datetime.date(2019,11,11),
- datetime.date(2020,1,13),
- datetime.date(2020,9,6),
- ]
- def define_quarter():
- for i in range(len(quarter)):
- if(datetime.date.today() > quarter[i]):
- n=i
- return n
- def main():
- soup=BeautifulSoup(txt,'html.parser')
- trs=soup.findAll('tr')
- for tr in trs:
- try:
- lesson=tr.find('span').text.replace(' ', '').replace('\n','')
- lesson=lesson.replace(lesson[0] + lesson[1],'')
- mark=tr.find('strong').text
- soup1=BeautifulSoup(str(tr.parent.parent),'html.parser')
- date=soup1.find('table', class_='db_table').get('id').replace('db_table_','')
- date=datetime.datetime.strptime(date,'%d.%m.%y')
- try:
- num=define_quarter()
- if(date.strftime("%Y%m%d") > quarter[num].strftime("%Y%m%d")):
- # is okay
- for i in range(len(lessons)):
- if lessons[i][0]==lesson:
- lessons[i][1]+=mark
- else:
- pass
- except Exception as err:
- print(err)
- except:
- pass
- def calculation():
- for i in range(len(lessons)):
- n=0
- for j in range(len(lessons[i][1])):
- n+=int(lessons[i][1][j])
- try:
- lessons[i][2]=round((n/len(lessons[i][1])), 3)
- except:
- pass
- n=0
- def show():
- for i in range(len(lessons)):
- print(str(lessons[i][0])+(12-len(lessons[i][0]))*' ',str(lessons[i][1]),' ',str(lessons[i][2]))
- main()
- calculation()
- show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement