@abdulah-abu

Не могу получить через python скрипт JSON ответ от сайта?

Добрый день!

Столкнулся с такой проблемой, имеется почтовик на Roundcube, к которому я получаю доступ через Web морду и пробую выкачивать почту посредством Python скрипта.

Есть URL (пример): mail.mail.com/?_task=mail&_action=list&_mbox=INBOX...

При обращении к которому на других Roundcube сервакаx я в ответ получаю словарь:

{"action":"list","unlock":"loading1527827018822","env":{"mailbox":"INBOX","pagesize":50,"current_page":1,"delimiter":".","threading":false,"threads":true,"reply_all_mode":0,"layout":"list","drafts_mailbox":"Drafts","trash_mailbox":"Trash","junk_mailbox":"Junk","read_when_deleted":true,"display_next":true,"messagecount":146,"pagecount":3,"exists":146,"multifolder_listing":false},"exec":"this.set_pagetitle(\"MAI MAIL.COM");\nthis.set_unread_count(\"INBOX\",0,true,\"\");\nthis.set_rowcount(\"blabla 146\",\"INBOX\");\nthis.set_message_coltypes([\"threads\",\"subject\",\"status\",\"fromto\",\"date\",\"size\",\"flag\",\"attachment\"],null,\"from\");\nthis.add_message_row(147,{\"subject\


В этом словаре содержатся данные UID писем.

Что касается нужного сервера если переходить по ссылке:
mail.mail.com/?_task=mail&_action=list&_mbox=INBOX...

То в ответ я получаю следующее:
5b10cbc9a9836547936448.png

Но если посмотреть response в инспекторе элементов то я вижу там JSON ответ от сервера с нужной мне информацией.
5b10cd15571cf900979329.png

Посредством Python скрипта пробую сделать следующий запрос:
responseData = session.get("http://www.mail.mail.com/?_task=mail&_action=list&_refresh=1&_mbox=" + remote + "&_page=1&_remote=1&_unlock=loading" + unix_time_conv("UniTodey") + "&_=" + unix_time_conv(3) + "", cookies=responseAuth.cookies.get_dict(), headers=headers, proxies=proxies)
print(responseData.json())


И в ответ я получаю вот это:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


Не могу понять как получить JSON ответ от сервера с нужной мне информацией.
  • Вопрос задан
  • 1329 просмотров
Пригласить эксперта
Ответы на вопрос 3
@immaculate
Программист-путешественник
Когда вы открываете url в браузере, RoundCube понимает, что вы авторизованы глядя на заголовки запроса (я не знаю, что использует конкретно RoundCube, возможно, cookie или параметр в URL).

Если вам необходимо открыть url из Python, то скорее всего, сначала надо выполнить запрос аутентификации или передавать в запросе API key (опять же, надо смотреть документацию по RoundCube).

Еще стоит убедиться, что все заголовки запроса из Python совпадают с заголовками, передаваемыми браузером (например, заголовок Accept).
Ответ написан
Комментировать
print(responseData.text)

там все написано должно быть
Ответ написан
Комментировать
@marataziat
Джангист-тракторист
Вот же, готовый API есть зачем все эти извращения?
https://github.com/roundcube/roundcubemail/wiki/Pl...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы