Авторизация на сайте с использованием средств языка python

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Есть сайт с учётными записями студентов https://student.psu.ru Проблема в том, что когда студентам преподаватели выставляют баллы за экзамены, об изменении баллов не приходит оповещение. Пришла в голову идея написать оповещалку. У сайта своего API нет. На питоне раньше никогда не писал. Первая проблема для меня: авторизация на сайте. Пробовал подключать requests и beautifulsoup и что-то делать (не исключаю, что всё это бред). Ничего хорошего не вышло. Выглядит это как-то так:
Листинг программы
  1. # coding: utf-8
  2. import requests
  3. #from BeautifulSoup import BeautifulSoup
  4. class Etis(object):
  5. url = 'https://student.psu.ru/pls/stu_cus_et/stu.login'
  6. def auth(self):
  7. session = requests.Session()
  8. url = self.url
  9. params = {
  10. 'p_redirect':u'stu.timetable',
  11. 'p_username':u'логин_на_русском',
  12. 'p_password':u'пароль_на_русском',
  13. }
  14. r = session.post(url, params)
  15. print(r.text)
  16. if __name__ == '__main__':
  17. Etis = Etis()
  18. Etis.auth()
И было ещё несколько подобных попыток подобного рода:
Листинг программы
  1. # -*- coding: utf-8 -*-
  2. import requests
  3. from bs4 import BeautifulSoup
  4. r = requests.get("https://student.psu.ru/pls/stu_cus_et/stu.login")
  5. soup = BeautifulSoup(r.content)
  6. print(soup.prettify())
Ни к чему хорошему это не привело. Во-первых, код страницы не отображает русские символы, что бы с разметкой я ни делал, такое только на этом сайте, пробовал на других с русским текстом - он отображается. Во-вторых, если посмотреть на первый код, он имеет параметры. Я так до конца и не разобрался как их узнать, поэтому возможно они не все там. Хочу услышать какие-то комментарии, в правильном ли направлении я вообще двигаюсь. Большое спасибо.

Решение задачи: «Авторизация на сайте с использованием средств языка python»

textual
Листинг программы
  1. form.fields['p_username'] = quote(name.encode('utf8'))
  2. form.fields['p_password'] = quote(password.encode('utf8'))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут