python常用的爬虫库,python中chardet

python常用的爬虫库,python中chardet,Python爬虫之必备chardet库

本文主要介绍python爬虫必备的chardet库。文章中有非常详细的代码示例,对正在学习Python的朋友很有帮助。有需要的可以参考一下。

目录

一、chardet库二的安装与介绍。chardet库的使用2.1 chardet.detect()函数2.2使用该函数分别检测gbk、utf-8和日文2.3如何在“爬虫”中使用chardet库?

一、chardet库的安装与介绍

玩过爬虫的朋友应该都知道,爬不同的网页,返回的结果都会是乱码。例如,当抓取中文网页时,一些页面使用GBK/GB2312,而其他页面使用UTF8。如果需要抓取一些页面,了解网页代码很重要。

虽然HTML页面有charset标签,但是有时候是错误的,所以chardet可以帮我们很多。Chardet可用于方便地检测字符串/文件的编码。

如果已经安装了Anaconda,可以直接使用chardet库。如果您刚刚安装了Python,您需要使用下面几行代码来完成chardet库的安装。

pip安装chardet

然后,使用下面的代码行导入chardet库。

导入字符

二、chardet库的使用

我们将分三部分解释这一部分。

2.1 chardet.detect()函数

detect()函数接受一个参数,一个非unicode字符串。它返回一个字典,其中包含自动检测的字符代码和从0到1的置信度。

编码:表示字符编码方法。

自信:表示可信。

语言:语言。

单看这个解释,大部分朋友可能看不懂。让我们用例子来描述这个功能。

2.2 使用该函数分别检测gbk、utf-8和日语

测试gbk编码的中文:

Str1='大家好,我是同学黄'。编码(“gbk”)

chardet.detect(str1)

chardet . detect(str 1)[' encoding ']

结果如下:

检测到的代码是GB2312。注意,GBK是GB2312的父集,两者是相同的代码。正确检测的概率为99%,语言字段指示的语言为‘中文’。

检测utf-8编码的中文:

Str2='我有一个梦想'。编码(“utf-8”)

chardet.detect(str2)

chardet . detect(str 2)[' encoding ']

结果如下:

检测一段日语:

str3=''.编码(“euc-jp”)

chardet.detect(str3)

chardet.detect(str3)

结果如下:

2.3 如何在“爬虫”中使用chardet库呢?

下面以百度网页为例来讲一下。

这个网页的源代码用了什么代码?让我们来看看源代码:

从图中可以看出,是utf-8字符编码。

如果不使用chardet库,如何在获取网页源代码时指定字符编码?

导入字符

导入请求

headers={ ' User-Agent ':' Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/55 . 0 . 2883 . 87 Safari/537.36 ' }

response=requests . get(' https://www . Baidu . com ',headers=headers)

response.encoding='utf-8 '

回复.文本

结果如下:

正确指定代码后你会发现没有乱码。如果把编码改成gbk,看看结果。这时候就是乱码了。

如果使用chardet库,在获取网页源代码时可以很容易地指定字符编码!

导入字符

导入请求

headers={ ' User-Agent ':' Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/55 . 0 . 2883 . 87 Safari/537.36 ' }

response=requests . get(' https://www . Baidu . com ',headers=headers)

#注意下面一行代码。是怎么写的?

response . encoding=chardet . detect(response . content)[' encoding ']

回复.文本

结果如下:

我们不用自己查代码,也不用猜。我们只是交给chardet库去猜,准确率还是很高的。

关于Python crawler的基本chardet库的这篇文章到此为止。有关Python chardet库的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: