Форум сайта python.su
Доброго времени суток !
на просторах интернета нашел бота который помогал мне в учебе выполняя некоторые задания на дистанционном обучении за меня.
Служил верой правой месяц .
С недавнего времени начал выдавать такую ошибку
Traceback (most recent call last): File "D:\python\as.py", line 31, in <module> f = r.json() File "D:\python\lib\site-packages\requests\models.py", line 808, in json return complexjson.loads(self.text, **kwargs) File "D:\python\lib\json\__init__.py", line 319, in loads return _default_decoder.decode(s) File "D:\python\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python\lib\json\decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
# бот для выполнения упражнений # сайт: gramotei.cerm.ru import requests import json import collections #номер упражнения и куки rule_id = "1935085" cookie = "PHPSESSID=xxxxxxxxxxxxxxx" #заголовки пакетов headers = {"Host": "gramotei.cerm.ru", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0", "Accept": "*/*", "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", "X-Requested-With": "XMLHttpRequest", "DNT": "1", "Referer": "http://gramotei.cerm.ru/student/train/"+rule_id, "Cookie": cookie, "Connection": "keep-alive"} headers2 = headers headers2["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8" y = 0 while y < 5: #получение заданий r = requests.post("http://gramotei.cerm.ru/student/train/"+rule_id+"/new", headers = headers) f = r.json() lol = [] n = 8 for lts in f["word"]: SaveDate = '{"id":'+json.dumps(lts["id"])+',"rule_id":'+json.dumps(lts["rule"])+',"status":"correct"}' lol.append(json.loads(SaveDate, object_pairs_hook=collections.OrderedDict)) if(n <= 0): data = "data="+json.dumps(lol) print(data) #отправка предварительного отчета чезез GET url = "http://gramotei.cerm.ru/App/Teacher/ajax.php?save_words=ok&ex_id="+rule_id+"&saving=0&data="+json.dumps(lol) SaveGet = requests.get(url, headers = headers) print(SaveGet.status_code, " ", SaveGet.text) #отправка отчета чезез POST SavePOST = requests.post("http://gramotei.cerm.ru/student/saveResult/"+rule_id, headers = headers2, data = data) print(SavePOST.status_code, " ", SavePOST.text) else: n=n-1
Офлайн
чтото у меня страничка http://gramotei.cerm.ru/student/train/1935085/new не открывается может нужно авторизироваться?
Офлайн
При попытке интерпретировать ответ сервера как JSON возникает проблема, следовательно нужно убедиться на на конкретный запрос в ответе содержится json. Вполне вероятно ссылка более не действительна или сервер отвечает что в запросе ошибка.
Офлайн
Ну так ему возвращает r = “logout”
как же оно ему джисон сложит?
Надо авторизация
Офлайн
ZerGДа необходима авторизация
чтото у меня страничка http://gramotei.cerm.ru/student/train/1935085/new не открывается может нужно авторизироваться?
Офлайн
http://gramotei.cerm.ru/student/train/“+rule_id+”/new
ZerGкод страницы
Ну так ему возвращает r = “logout”
как же оно ему джисон сложит?
Надо авторизация
{"hidehead":true,"exercise":{"id":"193508","num":"0","name":"\u0415\u0413\u042d. \u0417\u0430\u00ad\u0434\u0430\u00ad\u043d\u0438\u044f 12. \u041f\u0440\u0430\u00ad\u0432\u043e\u00ad\u043f\u0438\u00ad\u0441\u0430\u00ad\u043d\u0438\u0435 \u041d\u0415 \u0438 \u041d\u0418","start":"2016-04-18","end":"2016-04-23","words":"200","mistakes":"10","type":"train"},"done":"11","unfixed":0,"words":[{"id":"30297","meta":"\u043a\u043e\u0435[-, ]\u043a\u0442\u043e","sign_list":["-"," "],"word_list":["\u043a\u043e\u0435-\u043a\u0442\u043e","\u043a\u043e\u0435 \u043a\u0442\u043e"],"dots":"\u043a\u043e\u0435..\u043a\u0442\u043e","status":"new","grade":"5","srule":"814","rule":199},{"id":"18412","meta":"\u043d\u0435[, ]\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0430\u044f","sign_list":[""," "],"word_list":["\u043d\u0435\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0430\u044f","\u043d\u0435 \u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0430\u044f"],"dots":"\u043d\u0435..\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0430\u044f","status":"new","grade":"6","srule":"425","rule":245},{"id":"26960","meta":"\u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435[ ,]\u0432\u0435\u0440\u044f \u0441\u043b\u0443\u0445\u0430\u043c","sign_list":[" ",""],"word_list":["\u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0432\u0435\u0440\u044f \u0441\u043b\u0443\u0445\u0430\u043c","\u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0432\u0435\u0440\u044f \u0441\u043b\u0443\u0445\u0430\u043c"],"dots":"\u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435..\u0432\u0435\u0440\u044f \u0441\u043b\u0443\u0445\u0430\u043c","status":"new","grade":"6","srule":"432","rule":586},{"id":"17068","meta":"\u043d[\u0438,\u0435] \u0441 \u0447\u0435\u043c \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b","sign_list":["\u0438","\u0435"],"word_list":["\u043d\u0438 \u0441 \u0447\u0435\u043c \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b","\u043d\u0435 \u0441 \u0447\u0435\u043c \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b"],"dots":"\u043d.. \u0441 \u0447\u0435\u043c \u043d\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b","status":"new","grade":"5","srule":"407","rule":984},{"id":"17542","meta":"\u043d\u0435[, ]\u043f\u0440\u0430\u0432\u0434\u0430","sign_list":[""," "],"word_list":["\u043d\u0435\u043f\u0440\u0430\u0432\u0434\u0430","\u043d\u0435 \u043f\u0440\u0430\u0432\u0434\u0430"],"dots":"\u043d\u0435..\u043f\u0440\u0430\u0432\u0434\u0430","status":"new","grade":"6","srule":"369","rule":"187","type":"pwm"},{"id":"30692","meta":"\u043d[\u0438,\u0435]\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u044e","sign_list":["\u0438","\u0435"],"word_list":["\u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u044e","\u043d\u0435\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u044e"],"dots":"\u043d..\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u044e","status":"new","grade":"6","srule":"438","rule":232},{"id":"17066","meta":"\u043d[\u0438,\u0435]\u043a\u0442\u043e\u0301 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442","sign_list":["\u0438","\u0435"],"word_list":["\u043d\u0438\u043a\u0442\u043e\u0301 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442","\u043d\u0435\u043a\u0442\u043e\u0301 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442"],"dots":"\u043d..\u043a\u0442\u043e\u0301 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442","status":"new","grade":"5","srule":"407","rule":667},{"id":"27019","meta":"\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0435[, ]\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0435","sign_list":[""," "],"word_list":["\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0435","\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0435 \u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0435"],"dots":"\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0435..\u0434\u043e\u0443\u043c\u0435\u0432\u0430\u044e\u0449\u0435","status":"new","grade":"6","srule":"766","rule":213},{"id":"17933","meta":"\u043d\u0435[, ]\u043a\u043e\u0442\u043e\u0440\u044b\u0435","sign_list":[""," "],"word_list":["\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435","\u043d\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435"],"dots":"\u043d\u0435..\u043a\u043e\u0442\u043e\u0440\u044b\u0435","status":"new","grade":"6","srule":"400","rule":715},{"id":"18389","meta":"\u043d\u0435[ ,]\u0432\u044b\u043a\u0440\u0430\u0448\u0435\u043d","sign_list":[" ",""],"word_list":["\u043d\u0435 \u0432\u044b\u043a\u0440\u0430\u0448\u0435\u043d","\u043d\u0435\u0432\u044b\u043a\u0440\u0430\u0448\u0435\u043d"],"dots":"\u043d\u0435..\u0432\u044b\u043a\u0440\u0430\u0448\u0435\u043d","status":"new","grade":"6","srule":"427","rule":210},{"id":"17920","meta":"\u043d\u0435[ ,]\u0432\u0435\u0441\u0451\u043b\u044b\u0439, \u0430 \u0433\u0440\u0443\u0441\u0442\u043d\u044b\u0439","sign_list":[" ",""],"word_list":["\u043d\u0435 \u0432\u0435\u0441\u0451\u043b\u044b\u0439, \u0430 \u0433\u0440\u0443\u0441\u0442\u043d\u044b\u0439","\u043d\u0435\u0432\u0435\u0441\u0451\u043b\u044b\u0439, \u0430 \u0433\u0440\u0443\u0441\u0442\u043d\u044b\u0439"],"dots":"\u043d\u0435..\u0432\u0435\u0441\u0451\u043b\u044b\u0439, \u0430 \u0433\u0440\u0443\u0441\u0442\u043d\u044b\u0439","status":"new","grade":"6","srule":"379","rule":1008}],"id":"193508","isStudent":true}
Офлайн
ulmas78Так, походу, PHPSESSID устарел.
С недавнего времени начал выдавать такую ошибку
>>> import requests >>> >>> rule_id = "1935085" >>> cookie = "PHPSESSID=xxxxxxxxxxxxxxx" >>> >>> headers = {"Host": "gramotei.cerm.ru", ... "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0", ... "Accept": "*/*", ... "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3", ... "X-Requested-With": "XMLHttpRequest", ... "DNT": "1", ... "Referer": "http://gramotei.cerm.ru/student/train/"+rule_id, ... "Cookie": cookie, ... "Connection": "keep-alive"} >>> >>> headers2 = headers >>> headers2["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8" >>> >>> r = requests.post("http://gramotei.cerm.ru/student/train/"+rule_id+"/new", headers = headers) >>> >>> r.json() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/site-packages/requests/models.py", line 651, in json return json.loads(self.text or self.content, **kwargs) File "/usr/lib/python2.7/site-packages/simplejson/__init__.py", line 501, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode obj, end = self.raw_decode(s) File "/usr/lib/python2.7/site-packages/simplejson/decoder.py", line 393, in raw_decode return self.scan_once(s, idx=_w(s, idx).end()) simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0) >>> r <Response [200]> >>> r.text u'logout' >>>
Офлайн
py.user.nextТак раньше все работало даже и без phpsesid и rule-id
Офлайн
py.user.nextобновил phpsessid
Так, походу, PHPSESSID устарел.
Офлайн
py.user.nextа нет все заработало )
Так, походу, PHPSESSID устарел.
Офлайн