Форум сайта python.su
Всем привет !
Есть мысль сделать парсер для дневника https://mrko.mos.ru/dnevnik/
Дано:
Есть малинка ( Raspberry PI 2 ), начальные знания по Python и.т.п.
Хочется сделать парсер дневника, который будет по расписанию ( скажем раз в час ) шарить по дневнику моих двух бойцов и вытаскивать оттуда домашние задания и оценки.
Для начала хочу, чтобы просто выводиласть web-страничка, которая в простом виде показывала домашку и оценки на следующий день по выбранному пользователю.
Впоследствии хочется запилить вывод всего этого богатства на экран малины и посылку смс-ок выбранным адресатам с домашками и оценками.
Уперся прямо с самого начала.
Использовал requests и lxml.
import lxml.html as html import lxml.etree as etree import requests import json s = requests.Session() cookie = {ТУТКУЧАКУКИСОВКОТОРЫЕОТЛОВИЛСПРЕДЫДУЩИХСЕССИЙ} url = 'https://mrko.mos.ru/dnevnik/services/dnevnik.php' data={'login': 'ТУТЛОГИН', 'pass': 'ТУТПАРОЛЬ', 'password' : 'ТУТНЕВЕДОМЫЙПАРОЛЬ', 'submit': 'ХЗЧЕГО'} headers={'Referer':'https://pgu.mos.ru/ru/application/dogm/journal'} params = {'next': '2015-12-21'} req=s.post(url, json=data, headers=headers, params=params, cookies=cookie ) parser = etree.HTMLParser() tree = etree.fromstring(req.text.encode('utf-8'), parser=parser) #f = open('/var/www/FlaskApp/FlaskApp/resp.html',u'w') #f.write(r.text.encode('utf-8')) #f.close() d = tree.xpath("//div[@class='b-diary-st__body']")
Офлайн
dremdem
ну у вас сразу несколько ошибок, связанных с тем что у вас как раз не хватает знаний по тематике в целом.
Во первых вы не правильно понимаете как работать с сессиями - они на то и придуманы что бы не думать о куках. Внимательней посмотрите примеры в офиц.документации.
Во вторых посмотрите на исходный код страницы на которой пытаетесь авторизироваться - вы посылаете через форму логин и MD5 сумму пароля (смотрите JS функцию reg),а не пароль в чистом виде.
Офлайн
JOHN_16
dremdemну у вас сразу несколько ошибок, связанных с тем что у вас как раз не хватает знаний по тематике в целом.Во первых вы не правильно понимаете как работать с сессиями - они на то и придуманы что бы не думать о куках. Внимательней посмотрите примеры в офиц.документации.
JOHN_16
Во вторых посмотрите на исходный код страницы на которой пытаетесь авторизироваться - вы посылаете через форму логин и MD5 сумму пароля (смотрите JS функцию reg),а не пароль в чистом виде.
<form method="post" action="services/index.php" id="em_enter" onsubmit="javascript:reg($('#pass').val());"> Логин:<br> <input type="text" id="login" name="login" id="login" class="start_school" ><br> Пароль:<br> <input type="password" id='pass' name="pass" class="start_school"><br><br> <input type="hidden" id='password' name="password" value=''> <input type="submit" name="submit" class="submit_em" value="Войти"> </form>
Офлайн
Все, можно закрывать.
Кому интересно: пришлось заходить через pgu.mos.ru, там видимо получались все необходимые куки, сохранялись в сессии и дальше уже все прекрасно работает вход в дневник.
Для разбора запросов пользовался встроенным в Mozilla инспектором.
Офлайн
Ан нет, рановато закрывать.
Отряхну от пыли годовалую темку )
pgu.mos.ru похоже поменялся на mos.ru и авторизация поломалась.
Случайно никто на этой теме не завязан? А то попробовали бы порешать вместе.
Я 2-ой день бьюсь, пока безрезультатно.
Офлайн
Выяснилось, что переделали на OAuth 2.0
Буду пробовать освоить…
Офлайн
Здравствуйте! Тоже интересуюсь этой темой. Обращайтесь в Телеграм - @MonsterDeveloper
Офлайн