用Python 抓取的UTF8网页无法decode('utf-8')

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python 抓取的UTF8网页无法decode('utf-8')相关的知识,希望对你有一定的参考价值。

脚本在昨天之前一直运行的很好,但是昨天突然无法解析,求解为什么?

估计就是个别字符有问题,即
本来标称utf-8,但是实际上个别字符不是utf-8,比如是gb2312
结果导致错误。
常见的解决办法是,添加ignore参数,比如:
decodedUnicodehtml = yourHtml.decode("UTF-8", 'ignore')
就可以正常解码了。

更多相关内容可参考:
【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法

(此处没法发布地址,请自己google搜帖子标题,即可找到帖子地址)
参考技术A 不同的网页编码不一样,你今天抓的网页和昨天不一样啊。
编码是很麻烦的问题,你要针对各种网页写不同的解码和解析策略。追问

问题是,我仔细查看对方的源码,如我贴图所示,是UTF-8啊

追答

错误提示 92229-92230 这个地方可能出现了不兼容的编码,一般有2种办法:
1 你用decode的时候,需要开启ignore模式,遇到个别不兼容的编码可以过滤掉。
2 下载一个 iconv, 需要转码的使用用python调用这个iconv来转码,同样要开启escape模式,跳过不兼容的字符。

本回答被提问者和网友采纳
参考技术B 人家换了编码了吧。你邮件看看网页上面的编码是多少改一下你的程序就好了。

以上是关于用Python 抓取的UTF8网页无法decode('utf-8')的主要内容,如果未能解决你的问题,请参考以下文章

我用python打开一个网页 并且打印 前面有个b是怎么回事?

python网页抓取练手代码

如何解决用 Beautiful Soup 抓取网页却得到乱码的问题

用爬虫抓取网页得到的源代码和浏览器中看到的不一样运用了啥技术?

Python 抓取网页gb2312乱码问题

用python抓取的网页保存后为啥乱码?