爬虫小问题(3):爬取的页面出现乱码问题
在爬虫中出现中文内容的时候,爬取下来的html页面会出现乱码。
原因:爬取下来的页面是一般默认编码为ASCII。而windows控制台默认gbk,抓取utf-8编码的网站或者Mac终端(utf-8)抓取了gbk编码的网站,都容易出现。如果页面中英文、数字、符号都没有问题,仅仅是没有中文内容,而是夹杂着一堆乱码,那就是这种情况。
解决方法:
1.去原网站查找网站编码,然后将爬取的页面编码设置为该编码。在该网站开发者页面中,Ctrl+F搜索charset属性,这就是该网站的编码方式。
2.直接用语句:response.encoding = response.apparent_encoding,把返回的页面编码设置为网站编码。
编码内容拓展:
常见的编码方式有utf-8,Unicode,gbk,gbk2312等等
1.编码 encode():Unicode等可以通过encode()转换gbk、utf-8等形式
2.解码 decode():gbk、utf-8可以通过decode()转换为Unicode形式
注:如果gbk,utf-8之间需要转换,则需要先decode()转为Unicode,然后再encode()为目的编码形式
用法:
N = ‘编码形式’ #默认为Unicode
G = n. encode(‘gbk’) #转换为gbk
U = n.encode(‘utf-8’)#utf-8
G2 = G.decode(‘gbk’) #从gbk形式解码
G3 = G.decode(‘gbk’).encode(‘gb2312’)#先从gbk解码,再转换为gb2312编码
注:可以将Unicode理解为钱或者一般等价物,而其他则属于特殊物品。