Python 3 requests.get()。text返回未编码的字符串

时间:2018-08-21 10:46:30

标签: python python-3.x python-requests

Python 3 requests.get()。text返回未编码的字符串。 如果我执行:

import requests
request = requests.get('https://google.com/search?q=Кто является президентом России?').text.lower()
print(request)

我有点像这样:

Кто является презид

我尝试将google.com更改为google.ru

如果我执行:

import requests
request = requests.get('https://google.ru/search?q=Кто является президентом России?').text.lower()
print(request)

我有点像这样:

d0%9a%d1%82%d0%be+%d1%8f%d0%b2%d0%bb%d1%8f%d0%b5%d1%82%d1%81%d1%8f+%d0%bf%d1%80%d0%b5%d0%b7%d0%b8%d0%b4%d0%b5%d0%bd%d1%82%d0%be%d0%bc+%d0%a0%d0%be%d1%81%d1%81%d0%b8%d0

我需要获取一个经过编码的普通字符串。

2 个答案:

答案 0 :(得分:1)

您收到此错误,因为请求无法识别响应的正确编码。因此,如果您对响应编码有把握,则可以按如下所示进行设置:

response = requests.get(url) response.encoding --> to check the encoding response.encoding = "utf-8" --> or any other encoding.

然后使用.text方法获取内容。

答案 1 :(得分:0)

我用urllib.parse.unquote()方法修复了它:

import requests
from urllib.parse import unquote

request = unquote(requests.get('https://google.ru/search?q=Кто является президентом России?').text.lower())
print(request)