Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. # Вывод всех курсов, направлений, групп из Электронного Университета
  2. # МГТУ им.Баумана
  3.  
  4.  
  5. import requests
  6. from bs4 import BeautifulSoup, Tag
  7.  
  8. # Получение списка направлений
  9. def get_sub(html):
  10. soup = BeautifulSoup(str(html))
  11. mas = soup.findAll('span', {'class' : 'struct-link'})
  12. for i in range(len(mas)):
  13. soup = BeautifulSoup(str(mas[i]))
  14. step = str(soup.span.find(recursive=False))
  15. step = step[step.find('>')+ 1 : step.find('—') - 1]
  16. mas[i] = step
  17. return mas
  18.  
  19. # Получение списка групп
  20. def get_groups(html):
  21. soup = BeautifulSoup(str(html))
  22. mas = soup.findAll('i')
  23. for i in range(len(mas)):
  24. mas[i] = str(mas[i]).replace('(М)', '')
  25. mas[i] = str(mas[i]).replace('(Б)', '')
  26. mas[i] = mas[i][3:-8]
  27. mas[i] = mas[i].rstrip()
  28. mas[i] += '</a>'
  29. soup = BeautifulSoup(str(mas[i]))
  30. mas[i] = soup.a.contents[0]
  31. return mas
  32.  
  33. # Начало сессии на сайте электронного университета
  34. session = requests.Session()
  35. url = 'https://webvpn.bmstu.ru/+webvpn+/index.html'
  36.  
  37. # Авторизация
  38. login = 'mpyu16u816'
  39. pas = 'bbmxafkm'
  40. dann = dict(username = login, password = pas)
  41. session.get(url)
  42. session.post(url, dann)
  43. url2 = 'https://webvpn.bmstu.ru/+CSCO+0h75676763663A2F2F72682E6F7A6667682E6568++/modules/session/'
  44. r = session.get(url2)
  45. r.encoding = 'utf-8'
  46. res = r.text
  47.  
  48. # Выборка и структурирование данных из полученного html-файла
  49. soup = BeautifulSoup(res)
  50. mas = soup.findAll('ul', id="session-structure")
  51.  
  52. # Получение списка курсов
  53. soup = BeautifulSoup(str(mas[0]))
  54. courses = soup.ul.findAll(recursive=False)
  55.  
  56. dirs_mas = []
  57. groups_mas = []
  58. flag = 0
  59.  
  60. # Выполнение для каждого курса
  61. for i in range(len(courses)):
  62. soup = BeautifulSoup(str(courses[i]))
  63. subtree = soup.ul
  64.  
  65. # Получение направлений в текущем курсе
  66. directions = get_sub(subtree)
  67.  
  68. subtree_directions = subtree
  69.  
  70. subtree.extract()
  71. subtree = soup.b
  72. subtree.extract()
  73.  
  74. soup = BeautifulSoup(str(courses[i]))
  75. groups = soup.ul.findAll(recursive=False)
  76.  
  77. for j in range(len(directions)):
  78. # Получение групп в в текущем направлении
  79. group = get_groups(groups[j])
  80. dirs_mas.append((directions[j], group))
  81.  
  82. courses[i] = (subtree.contents[0], dirs_mas)
  83. dirs_mas = []
  84.  
  85. # Вывод структурированного списка
  86. for i in range(len(courses)):
  87. print(courses[i][0])
  88. for j in range(len(courses[i][1])):
  89. print('--' + courses[i][1][j][0])
  90. for k in range(len(courses[i][1][j][1])):
  91. print('----' + courses[i][1][j][1][k])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement