SHARE
TWEET

mai_2011

a guest Jul 31st, 2011 110 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # coding=utf-8
  2. import urllib.request, urllib.parse, re
  3. #ДАННЫЕ:
  4. mark = 214 # балл
  5. hostel = 0 # нуждаемость в общежитии да(1) нет (0)
  6. opt = urllib.parse.urlencode({'budjet':'Б', 'form': 'О', 'dep': '8', 'spec': 'Б-010400', 'listtype':'2', 'submit': 'Показать'})
  7. opt = opt.encode('utf-8')
  8. page = urllib.request.urlopen('http://priem.mai.ru/lists/', opt)
  9. page = page.read().decode('utf-8')
  10. page = page.replace('<nobr>','').replace('</nobr>','').replace('<br/>', ' ').replace('<td></td>','<td> </td>')
  11. ege = re.findall('<td>(.+?)</td>', page)
  12. del ege [0:11:1], ege [-4::1] # удаляем мусор
  13. # разбиваем на несколько списков
  14. names = ege[2::7] #имена
  15. marks = ege[4::7] # баллы (приоритет)
  16. ob = ege[3::7] # общежитие
  17. doc = ege[5::7] # тип документа
  18. # счётчики
  19. mesto_pmi = 1
  20. mesto_pm = 1
  21. mesto_hostel = 1
  22. s=0
  23. # удаляем всех копиистов
  24. #ОШИБКА В КОДЕ БЛЯДЬ!
  25. # fixed?
  26. for i in doc[:]:
  27.     if i=='Копия' or i=='Забрал документы':
  28.         doc.remove(i)
  29.         del names[s], marks[s], ob[s]
  30.         s-=1
  31.     s+=1
  32. del i
  33. s=0
  34. p_o=0
  35. # удаляем всех, кто не проходит с общежитием
  36. o=27 #количество мест в общежитии
  37. for i in ob[:]:
  38.     if o>0:
  39.         if i=='Общежитие' or i=='Общежитие (Не согласен без общежития)' or i=='Общежитие (Согласен без общежития)':
  40.             if marks[s][:3:1]== '&nb' or int(marks[s][:3:1])>=mark:
  41.                 mesto_hostel+=1
  42.             o-=1
  43.     else:
  44.         p_o = marks[s-1]
  45.         if i=='Общежитие (Не согласен без общежития)':
  46.             ob.remove(i)
  47.             del doc[s], names[s], marks[s]
  48.             s-=1
  49.         else: mesto_hostel+=1
  50.     s=s+1
  51. del i
  52. # считаем место
  53. for i in marks:
  54.     if i[-3::1]=='(1)' or i[-3::1]=='sp;':
  55.         if i[:3:1]== '&nb' or int(i[:3:1])>=mark:
  56.             mesto_pmi = mesto_pmi+1
  57.     elif i[-3::1]=='(2)':
  58.         if int(i[:3:1])>=mark:
  59.             mesto_pm = mesto_pm+1
  60. # считаем проходной балл по факультету
  61. if len(marks)>=110:
  62.     p = marks[110][0:3:1]
  63.     print('Проходной балл по факультету: ', p)
  64. # выводим место в конкурсе
  65. print('ПМИ:', mesto_pmi,'/56','ПМ:', mesto_pm, '/54')
  66. # разбираемся с общежитием
  67. if hostel == 1:
  68.     if p_o!=0:
  69.         print('Общежитие:', mesto_hostel, '/27 ', 'проходной балл с общежитием:', p_o[0:3:1])
  70.     else: print('Общежитие:', mesto_hostel, '/27')
  71. del i
  72. s=0
  73. # выводим список поступающих на данный момент:
  74. for i in marks:
  75.     if i=='&nbsp;':
  76.         marks[s]='б/э'
  77.     s+=1
  78. del i
  79. s=0
  80. for i in ob:
  81.     if i=='&nbsp;':
  82.         ob[s]=''
  83.     s+=1
  84. del i
  85. s=0
  86. for i in names:
  87.     if s<109:
  88.      print(s+1, i, marks[s][0:3:1], ob[s])
  89.     s+=1
  90. input()
RAW Paste Data
Top