php网页抓取乱码(Python网络爬虫过程中三种中文乱码的处理方案的方法 )
优采云 发布时间: 2021-10-31 13:00php网页抓取乱码(Python网络爬虫过程中三种中文乱码的处理方案的方法
)
下面介绍三种处理网页爬虫过程中中文乱码的解决方案。希望对大家的学习有所帮助。
前言
前几天,有粉丝在Python交流群里问了一个关于使用Python网络爬虫过程中出现中文乱码的问题。
它看起来像一个大头。对于一个爬虫初学者来说,这个乱七八糟的代码放在他的面前,就像一块绊脚石。不过别慌,小编在这里为大家整理了三种方法,专门针对中文乱码。希望大家以后再遇到中文乱码问题,也能在这里得到启发!
一、思考
其实解决问题的关键在于一点,就是对乱码部分的处理,处理方案主要可以从两个方面着手。一种是预先对整个网页进行编码,另一种是对特定中文乱码的部分进行编码。这里说三个方法,肯定还有其他方法,欢迎大家在评论区评论。
二、分析
其实中文乱码的表现有很多种,但比较常见的两种如下:
1、当网页编码为gbk,将获取到的内容打印在控制台时,类似如下情况:
ÃÀÅ® µçÄÔ×À ¼üÅÌ »ú·¿ ¿É°® С½ã½ã4k±ÚÖ½
2、当网页编码为gbk,将获取到的内容打印在控制台时,类似如下情况:
�װŮ�� ��Ů ˮ СϪ Ψ��
虽然看起来控制台输出正常,但是没有报错:
Process finished with exit code 0
但是,中文的输出不是普通人能看懂的。
遇到这种情况,可以使用本文给出的三种方法来解决,久而久之!
三、 具体实现
1)方法一:把requests.get().text改成requests.get().content
我们可以看到通过text()方法得到的源码,然后打印出来,确实会出现乱码,如下图。
这时候可以考虑把请求改成.content,得到的内容是正常的。
2)方法二:手动指定网页编码
# 手动设定响应数据的编码格式
response.encoding = response.apparent_encoding
这个方法稍微复杂一点,但是比较容易理解,初学者比较好接受。如果你觉得上面的方法很难记住,也可以尝试直接指定gbk编码,也可以进行处理,如下图所示:
以上介绍的两种方法都是针对网页的整体编码,效果显着。接下来的第三种方法是对中文的局部乱码部分使用通用的编码方法。
3)方法三:使用通用的编码方式
img_name.encode('iso-8859-1').decode('gbk')
使用通用的编码方式,设置中文出现乱码的编码设置。还是现在的例子,设置img_name的编码,指定编码,解码,如下图。
这样,乱码的问题就轻松解决了。
四、总结
本文根据粉丝提出的问题,针对Python网络爬虫过程中出现的中文乱码问题给出了三种乱码解决方案,成功帮助粉丝解决问题。虽然文中引用了三种方法,但相信一定还有其他方法,欢迎大家在评论区留言。如果需要进*敏*感*词*流,可以按如下方式进群。
技术交流
欢迎转载,采集,并获得一些好评和支持!
目前已开通技术交流群,群内好友达2000余人。添加时备注最好的方式是:来源+兴趣方向,方便找志同道合的朋友