Промежуточный результат парсинга расписания
This commit is contained in:
parent
a9f24607d4
commit
7711f0c589
75
main.py
75
main.py
@ -1593,19 +1593,20 @@ if __name__ == '__main__':
|
||||
post_data["&ctl00%24cphMain%24ctl06"] = -1
|
||||
post_data["&ctl00%24cphMain%24ctl07"] = -1
|
||||
post_data["&ctl00%24cphMain%24ctl08"] = -1
|
||||
print(post_data)
|
||||
# print(post_data)
|
||||
|
||||
post_headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||
post_url = "https://guap.ru/rasp/?g=2"
|
||||
# post_result = requests.post(post_url, data=post_data, headers=post_headers)
|
||||
|
||||
# FIXME представляем в голове, что мы получили страницу
|
||||
post_result = html_sample
|
||||
# post_result = requests.post(post_url, data=post_data, headers=post_headers)
|
||||
|
||||
# Парсим полученные данные
|
||||
|
||||
soup_result = BeautifulSoup(post_result, 'html.parser')
|
||||
|
||||
result_html = soup_result.find('div', {'class', 'result'})
|
||||
# В переменную записываем само расписание, без остальной страницы
|
||||
rasp_html = soup_result.find('div', {'class', 'result'})
|
||||
|
||||
# print(result_html.prettify())
|
||||
|
||||
@ -1613,7 +1614,7 @@ if __name__ == '__main__':
|
||||
# Пример rasp_summary
|
||||
# (
|
||||
# {
|
||||
# "date": "понедельник",
|
||||
# "date": "Понедельник",
|
||||
# "value": (
|
||||
# {
|
||||
# "time": "1 пара (9:30–11:00)",
|
||||
@ -1632,4 +1633,68 @@ if __name__ == '__main__':
|
||||
# )
|
||||
# }
|
||||
# )
|
||||
# Верстка сайта на высоте. Придется использовать next_siblings. Хвататься не за что.
|
||||
|
||||
|
||||
|
||||
# print(rasp_html.prettify())
|
||||
rasp_html_inside = rasp_html.find('div')
|
||||
# Это будет ужасно...
|
||||
cur_day = ""
|
||||
cur_lesson = ""
|
||||
day_iterator = 0
|
||||
for cur_sibl in rasp_html_inside.find_next_siblings():
|
||||
tag_type = cur_sibl.name
|
||||
# print(tag_type, cur_sibl.text)
|
||||
|
||||
match tag_type:
|
||||
case 'h2':
|
||||
# Header, пропускаем
|
||||
print(cur_sibl.text)
|
||||
case 'h3':
|
||||
# День недели
|
||||
# print(cur_sibl.text)
|
||||
if cur_day == '' and cur_day != cur_sibl.text and day_iterator == 0:
|
||||
cur_day = cur_sibl.text
|
||||
elif cur_day != '' and cur_day != cur_sibl.text:
|
||||
day_iterator += 1
|
||||
cur_day = cur_sibl.text
|
||||
|
||||
case 'h4':
|
||||
# какая пара
|
||||
# print(cur_sibl.text)
|
||||
cur_lesson = cur_sibl.text
|
||||
case 'div':
|
||||
# Что за пара, препод, место, аудитория
|
||||
|
||||
up_or_down = ""
|
||||
get_b = cur_sibl.find('b')
|
||||
# Верхняя/Нижняя пара
|
||||
if get_b is None:
|
||||
# Пара бывает всегда
|
||||
pass
|
||||
else:
|
||||
if get_b.get('class') == 'up':
|
||||
up_or_down = 'up'
|
||||
else:
|
||||
up_or_down = 'down'
|
||||
|
||||
# Что за пара
|
||||
|
||||
# Тип пары (лекция)
|
||||
|
||||
|
||||
|
||||
# Препод
|
||||
|
||||
# место, аудитория
|
||||
|
||||
|
||||
# Итого, пишем в rasp_summary
|
||||
print('sdfsdf ', day_iterator, cur_day, cur_lesson, up_or_down, cur_sibl.text)
|
||||
# rasp_summary[cur_day][cur_lesson] = cur_sibl
|
||||
# print(cur_sibl.text)
|
||||
case _:
|
||||
print('wtf')
|
||||
|
||||
print(rasp_summary)
|
||||
|
Loading…
Reference in New Issue
Block a user