美文网首页
python response 中文乱码问题

python response 中文乱码问题

作者: 隐墨留白 | 来源:发表于2020-11-11 13:42 被阅读0次

获得response.text有如下类似的乱码:

<meta property="og:site_name" content="快��" />

解决方法有两种:
第一种:

#response.apparent_encoding 从内容中分析出响应内容的编码方式
response.encoding = response.apparent_encoding

apparent_encoding方法是requests库利用chardet对字节流编码进行了猜测。一般来说使用这种方法,大部分网页的中文乱码都会恢复。如果还是不行,那就试试第二种方法。
第二种:

  #<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  text =  response.content.decode('utf-8','ignore')

从网页格式中获得网页内容的编码方式(一般content-type字段会出现在HTML的header的头几行)。
如果直接拿来用,会报错

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 3536: invalid start byte

所以需要给decode加上第二个参数,decode([encoding], [errors='strict']), 第二个参数设置为ignore,则会忽略非法字符。

这样就能获得正确的中文内容了。

练习网址https://news.mydrivers.com/1/628/628585.htm

相关文章

网友评论

      本文标题:python response 中文乱码问题

      本文链接:https://www.haomeiwen.com/subject/leuebktx.html