一般在获取响应内容时,会出现响应结果乱码或者为 Unicode,首先需要知道用的是那种编码方式,其次如何针对性去解码

    1. encoding 是从 http 的 header 中的 charset 字段中提取的编码方式,如果 header 中没有 charst 字段,则会默认为 ISO-8859-1 编码模式。则无法解析中文,所以会造成乱码
    2. apparent_encoding 是从网页的响应内容分析编码的方式,所有更加准确,当响应内容出现乱码时,可以把 apparent_encoding 的编码格式赋值给 encoding
    1. url = r'https://zhishu.baidu.com/api/SugApi/sug'
    2. params = {"inputword[]": "碳中和",
    3. "ischeckType": 15}
    4. headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"}
    5. res = requests.get(url=url, params=params, headers=headers)
    6. print("原始编码:", res.apparent_encoding)
    7. print("解码前:", res.content)
    8. print("解码后:", res.content.decode("unicode-escape"))

    image.png