Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Вывод всех курсов, направлений, групп из Электронного Университета
- # МГТУ им.Баумана
- import requests
- from bs4 import BeautifulSoup, Tag
- # Получение списка направлений
- def get_sub(html):
- soup = BeautifulSoup(str(html))
- mas = soup.findAll('span', {'class' : 'struct-link'})
- for i in range(len(mas)):
- soup = BeautifulSoup(str(mas[i]))
- step = str(soup.span.find(recursive=False))
- step = step[step.find('>')+ 1 : step.find('—') - 1]
- mas[i] = step
- return mas
- # Получение списка групп
- def get_groups(html):
- soup = BeautifulSoup(str(html))
- mas = soup.findAll('i')
- for i in range(len(mas)):
- mas[i] = str(mas[i]).replace('(М)', '')
- mas[i] = str(mas[i]).replace('(Б)', '')
- mas[i] = mas[i][3:-8]
- mas[i] = mas[i].rstrip()
- mas[i] += '</a>'
- soup = BeautifulSoup(str(mas[i]))
- mas[i] = soup.a.contents[0]
- return mas
- # Начало сессии на сайте электронного университета
- session = requests.Session()
- url = 'https://webvpn.bmstu.ru/+webvpn+/index.html'
- # Авторизация
- login = 'mpyu16u816'
- pas = 'bbmxafkm'
- dann = dict(username = login, password = pas)
- session.get(url)
- session.post(url, dann)
- url2 = 'https://webvpn.bmstu.ru/+CSCO+0h75676763663A2F2F72682E6F7A6667682E6568++/modules/session/'
- r = session.get(url2)
- r.encoding = 'utf-8'
- res = r.text
- # Выборка и структурирование данных из полученного html-файла
- soup = BeautifulSoup(res)
- mas = soup.findAll('ul', id="session-structure")
- # Получение списка курсов
- soup = BeautifulSoup(str(mas[0]))
- courses = soup.ul.findAll(recursive=False)
- dirs_mas = []
- groups_mas = []
- flag = 0
- # Выполнение для каждого курса
- for i in range(len(courses)):
- soup = BeautifulSoup(str(courses[i]))
- subtree = soup.ul
- # Получение направлений в текущем курсе
- directions = get_sub(subtree)
- subtree_directions = subtree
- subtree.extract()
- subtree = soup.b
- subtree.extract()
- soup = BeautifulSoup(str(courses[i]))
- groups = soup.ul.findAll(recursive=False)
- for j in range(len(directions)):
- # Получение групп в в текущем направлении
- group = get_groups(groups[j])
- dirs_mas.append((directions[j], group))
- courses[i] = (subtree.contents[0], dirs_mas)
- dirs_mas = []
- # Вывод структурированного списка
- for i in range(len(courses)):
- print(courses[i][0])
- for j in range(len(courses[i][1])):
- print('--' + courses[i][1][j][0])
- for k in range(len(courses[i][1][j][1])):
- print('----' + courses[i][1][j][1][k])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement