@raylenmid

Как задать кодировку запроса в requests?

Добрый день!
Пробую заполнить форму и отправить запрос следующим образом:
# -*- coding: windows-1251 -*-
import requests

payload = {"StFIO": "Иван"}
r = requests.post("http://192.192.192.192/", data=payload)
r.encoding = "windows-1251"
body_data = r.text
print(body_data)

и получаю вот это в ответе (целиком не публикую, только проблемную часть) - value="Р�ван"

<td width="653" class="style1"><input name="StFIO" type="text" id="StFIO" size="78" maxlength="78" value="�ван"></td>


если запрос отправляю с цифрами или латиницей - все ОК, нормальный ответ и таблица с данными.
Подскажите, пожалуйста, как исправить ситуацию.
Спасибо!
  • Вопрос задан
  • 3174 просмотра
Пригласить эксперта
Ответы на вопрос 2
@AlexPyth
Разработчик ПО
Почему ты используешь кодировку "windows-125" для отправки формы на сайт? Практически всегда для web-приложений используется кодировка "utf-8". Попробуй объявить аргумент "coding" со значением "utf-8", а также переменной r.encoding присвоить значение "utf-8" или вовсе удалить эту строчку в своём скрипте.
Ответ написан
ALEGOR1902
@ALEGOR1902
Почему вы используете кодировку windows-125?
Сделайте вот так:
# -*- coding: utf-8 -*-
import requests

payload = {"StFIO": "Иван"}
r = requests.post("http://192.192.192.192/", data=payload)
r.encoding = "utf-8"
body_data = r.text
print(body_data)
Ответ написан
Ваш ответ на вопрос

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

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