Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.58 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from urllib.request import urlopen
  3. from bs4 import  BeautifulSoup
  4. import datetime
  5.  
  6. txt=open(r'C:\Users\MAKS\Desktop\html.txt','r')
  7. lessons=[ # constuction: 'name of lesson',[marks],[average score]
  8.     ['Астрономия',[],[]],
  9.     ['Бел.лит.',[],[]],
  10.     ['Бел.яз.',[],[]],
  11.     ['Биология',[],[]],
  12.     ['Всемир.ист.',[],[]],
  13.     ['География',[],[]],
  14.     ['ДП/МП',[],[]],
  15.     ['Информ.',[],[]],
  16.     ['Ист.Бел.',[],[]],
  17.     ['Матем.',[],[]],
  18.     ['Нем.яз.',[],[]],
  19.     ['Обществов.',[],[]],
  20.     ['Рус.лит.',[],[]],
  21.     ['Рус.яз.',[],[]],
  22.     ['Физика',[],[]],
  23.     ['Физ.к.изд.',[],[]],
  24.     ['Химия',[],[]],
  25.     ['ЧЗС',[],[]]
  26. ]
  27.  
  28.  
  29.  
  30. b=0
  31. quarter=[  #даты начала четвертей
  32.     datetime.date(2019,9,2),
  33.     datetime.date(2019,11,11),
  34.     datetime.date(2020,1,13),
  35.     datetime.date(2020,9,6),
  36. ]
  37.  
  38. def define_quarter():
  39.     for i in range(len(quarter)):
  40.         if(datetime.date.today() > quarter[i]):
  41.             n=i
  42.     return n
  43.  
  44. def main():
  45.     soup=BeautifulSoup(txt,'html.parser')
  46.  
  47.     trs=soup.findAll('tr')
  48.     for tr in trs:    
  49.         try:
  50.            
  51.            
  52.             lesson=tr.find('span').text.replace(' ', '').replace('\n','')
  53.             lesson=lesson.replace(lesson[0] + lesson[1],'')
  54.            
  55.             mark=tr.find('strong').text
  56.  
  57.             soup1=BeautifulSoup(str(tr.parent.parent),'html.parser')
  58.  
  59.             date=soup1.find('table', class_='db_table').get('id').replace('db_table_','')
  60.             date=datetime.datetime.strptime(date,'%d.%m.%y')
  61.  
  62.             try:
  63.                 num=define_quarter()
  64.                 if(date.strftime("%Y%m%d")  > quarter[num].strftime("%Y%m%d")):
  65.                     # is okay
  66.                     for i in range(len(lessons)):
  67.                         if lessons[i][0]==lesson:
  68.                             lessons[i][1]+=mark
  69.                 else:
  70.                     pass
  71.  
  72.             except Exception as err:
  73.                 print(err)
  74.      
  75.         except:
  76.             pass  
  77.  
  78.  
  79. def calculation():
  80.     for i in range(len(lessons)):
  81.         n=0
  82.         for j in range(len(lessons[i][1])):
  83.             n+=int(lessons[i][1][j])
  84.         try:
  85.             lessons[i][2]=round((n/len(lessons[i][1])), 3)
  86.         except:
  87.             pass    
  88.         n=0
  89.  
  90. def show():
  91.     for i in range(len(lessons)):
  92.         print(str(lessons[i][0])+(12-len(lessons[i][0]))*' ',str(lessons[i][1]),' ',str(lessons[i][2]))
  93. main()
  94. calculation()
  95. show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement