php网页抓取乱码(Python网络爬虫过程中三种中文乱码的处理方案的方法 )

优采云 发布时间: 2021-10-31 13:00

  php网页抓取乱码(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余人。添加时备注最好的方式是:来源+兴趣方向,方便找志同道合的朋友

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线