Авторизация на сайте с использованием средств языка python
Формулировка задачи:
Добрый вечер. Есть сайт с учётными записями студентов https://student.psu.ru
Проблема в том, что когда студентам преподаватели выставляют баллы за экзамены, об изменении баллов не приходит оповещение. Пришла в голову идея написать оповещалку. У сайта своего API нет. На питоне раньше никогда не писал. Первая проблема для меня: авторизация на сайте. Пробовал подключать requests и beautifulsoup и что-то делать (не исключаю, что всё это бред). Ничего хорошего не вышло. Выглядит это как-то так:
И было ещё несколько подобных попыток подобного рода:
Ни к чему хорошему это не привело. Во-первых, код страницы не отображает русские символы, что бы с разметкой я ни делал, такое только на этом сайте, пробовал на других с русским текстом - он отображается. Во-вторых, если посмотреть на первый код, он имеет параметры. Я так до конца и не разобрался как их узнать, поэтому возможно они не все там.
Хочу услышать какие-то комментарии, в правильном ли направлении я вообще двигаюсь. Большое спасибо.
Листинг программы
- # coding: utf-8
- import requests
- #from BeautifulSoup import BeautifulSoup
- class Etis(object):
- url = 'https://student.psu.ru/pls/stu_cus_et/stu.login'
- def auth(self):
- session = requests.Session()
- url = self.url
- params = {
- 'p_redirect':u'stu.timetable',
- 'p_username':u'логин_на_русском',
- 'p_password':u'пароль_на_русском',
- }
- r = session.post(url, params)
- print(r.text)
- if __name__ == '__main__':
- Etis = Etis()
- Etis.auth()
Листинг программы
- # -*- coding: utf-8 -*-
- import requests
- from bs4 import BeautifulSoup
- r = requests.get("https://student.psu.ru/pls/stu_cus_et/stu.login")
- soup = BeautifulSoup(r.content)
- print(soup.prettify())
Решение задачи: «Авторизация на сайте с использованием средств языка python»
textual
Листинг программы
- form.fields['p_username'] = quote(name.encode('utf8'))
- form.fields['p_password'] = quote(password.encode('utf8'))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д