彻底解决网络爬虫遇到的中文乱码问题

你是否遇到过下面的情况:
作为爬虫新手好不容易写了一个爬虫结果爬出来的数据中文数据乱码导致不能使用
如图:
彻底解决网络爬虫遇到的中文乱码问题_第1张图片
其实很好解决:
如果你是使用的request模块得到的相应对象则可以如下设置:
主要由两种情况,这是根据网页所使用的的编码来看的,如果不想找,就直接两种同时使用,总有一种是适合的。如果想找就看网页http请求中content对应类型的设置:
彻底解决网络爬虫遇到的中文乱码问题_第2张图片
但是这个也不能全信,因为存在给的和实际使用的不一致的情况,所以建议两种方法都试一下。
1.网页端为utf-8形式

response=requests.get(url=url,headers=headers)
response.encoding='utf-8'
response=response.text

2.网页端为gbk形式

response=requests.get(url=url,headers=headers)
response.encoding='gbk'
response=response.text

结果如下:
彻底解决网络爬虫遇到的中文乱码问题_第3张图片
如果你是使用的urllib 则可以尝试使用
先得对象后处理
RES=urllib2.urlopen(request).read()
RES = RES.decode(‘gb2312’).encode(‘utf-8’)
目前该方法不常用,所以不做展开,请自行尝试

造成我们爬取到的网页中文乱码的一部分原因:
1、不同编码内容混杂:HTML乱码是由于html编码问题照成(常见 gb2312与utf-8两种编码内容同时存在照成)
2、未设置HTML编码:未设置,这里设置的是utf-8
3、使用记事本编辑html:使用记事本直接编辑html造成html编码乱码

你可能感兴趣的:(笔记,python,爬虫)