iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python爬虫之必备chardet库
  • 218
分享到

Python爬虫之必备chardet库

Pythonchardet库python常用库 2022-06-02 22:06:37 218人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

一、chardet库的安装与介绍 玩儿过爬虫的朋友应该知道,在爬取不同的网页时,返回结果会出现乱码的情况。比如,在爬取某个中文网页的时候,有的页面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些页面,知

一、chardet库的安装与介绍

玩儿过爬虫的朋友应该知道,在爬取不同的网页时,返回结果会出现乱码的情况。比如,在爬取某个中文网页的时候,有的页面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些页面,知道网页编码很重要的。

虽然html页面有charset标签,但是有些时候是不对的,那么chardet就能帮我们大忙了。使用 chardet 可以很方便的实现字符串/文件的编码检测。

如果你安装过Anaconda,那么可以直接使用chardet库。如果你只是安装了python的话,就需要使用下面几行代码,完成chardet库的安装。


pip install chardet

接着,使用下面这行代码,导入chardet库。


import chardet

二、chardet库的使用

这个小节,我们分3部分讲解。

2.1 chardet.detect()函数

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

  • encoding:表示字符编码方式。
  • confidence:表示可信度。
  • language:语言。

光看这个解释,大多数朋友可能看不懂,下面我们就用例子来讲述这个函数。

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

检测gbk编码的中文:


str1 = '大家好,我是黄同学'.encode('gbk')
chardet.detect(str1)

chardet.detect(str1)["encoding"]

结果如下:

在这里插入图片描述

检测的编码是GB2312,注意到GBK是GB2312的父集,两者是同一种编码,检测正确的概率是99%,language字段指出的语言是'Chinese'。

检测utf-8编码的中文:


str2 = '我有一个梦想'.encode('utf-8')
chardet.detect(str2)

chardet.detect(str2)["encoding"]

结果如下:

在这里插入图片描述

检测一段日文:


str3 = 'ありがとう'.encode('euc-jp')
chardet.detect(str3)

chardet.detect(str3)

结果如下:

在这里插入图片描述

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

我们以百度网页为例子,进行讲述。

在这里插入图片描述

这个网页的源代码,使用的是什么编码呢?我们看看源代码:

在这里插入图片描述

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

如果不使用chardet库,获取网页源代码的时候,怎么指定字符编码呢?


import chardet
import requests

headers = {'User-Agent':'Mozilla/5.0 (windows NT 6.1; WOW64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
response = requests.get('https://www.baidu.com',headers=headers)
response.encoding = "utf-8"
response.text

结果如下:

在这里插入图片描述

你会发现:正确指定编码后,没有乱码。如果你将编码改为gbk,再看看结果。此时已经乱码。

在这里插入图片描述

如果使用chardet库,获取网页源代码的时候,可以轻松指定字符编码!


import chardet
import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
response = requests.get('Https://www.baidu.com',headers=headers)

# 注意下面这行代码,是怎么写的?
response.encoding = chardet.detect(response.content)['encoding']
response.text

结果如下:

在这里插入图片描述

编码不用我们自己查找,也不用猜,直接交给chardet库去猜测,正确率还高。

到此这篇关于python爬虫之必备chardet库的文章就介绍到这了,更多相关Python chardet库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python爬虫之必备chardet库

本文链接: https://www.lsjlt.com/news/10538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python爬虫必备之XPath解析库的示例分析
    小编给大家分享一下Python爬虫必备之XPath解析库的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、简介XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进...
    99+
    2023-06-15
  • Python爬虫必备之Xpath简介及实例讲解
    目录前言一、Xpath简介二、Xpath语法规则语法规则标签定位属性定位索引定位取文本内容三、语法规则练习总结前言 网上已经有很多大佬发过Xpath,而且讲的都很好,我是因为刚开始学...
    99+
    2024-04-02
  • Python爬虫必备技巧详细总结
    自定义函数 import requests from bs4 import BeautifulSoup headers={'User-Agent':'Mozilla/5.0 (W...
    99+
    2024-04-02
  • Python爬虫之Requests库的基
    1 import requests 2 response = requests.get('http://www.baidu.com/') 3 print(type(response)) 4 print(response....
    99+
    2023-01-30
    爬虫 Python Requests
  • Python爬虫之urllib库详解
    目录一、说明:二、urllib四个模块组成:三、urllib.request1、urlopen函数2、response 响应类型3、Request对象 4、高级请求方式四、urlli...
    99+
    2024-04-02
  • 一款懒人必备的Python爬虫神器
    前言今天把最近的一个应用做好了,测试了一下运行没有问题,剩下的就是检验一下结果如何.从光谱到Lab值通常使用matlab中的roo2lab(),不过经过我最近的测试发现转换的结果并不理想,而且这个转化的代码也不是我写的所以另寻他法,找到了下...
    99+
    2023-05-14
    Python 爬虫神器
  • python爬虫工程师必备的10个爬虫工具分别是什么
    python爬虫工程师必备的10个爬虫工具分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。爬虫工程师必备的10个爬虫工具爬虫工程师必备的10个爬虫工具!...
    99+
    2023-06-02
  • python 爬虫之BeautifulS
    import urllib2url = 'http://www.someserver.com/cgi-bin/register.cgi'values = {}values['name'] = 'Michael Foord'values['l...
    99+
    2023-01-31
    爬虫 python BeautifulS
  • 【Python】Python爬虫之Sel
    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 <...
    99+
    2023-01-31
    爬虫 Python Sel
  • python爬虫之pyppeteer库简单使用
    pyppeteer 介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 AP...
    99+
    2024-04-02
  • Python爬虫之requests库基本介绍
    目录一、说明二、基本用法:总结一、说明 requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方...
    99+
    2024-04-02
  • Python爬虫之Urllib库的基本使
    # get请求 import urllib.request response = urllib.request.urlopen("http://www.baidu.com") print(response.read().decode('...
    99+
    2023-01-30
    爬虫 Python Urllib
  • Python爬虫之爬取某文库文档数据
    目录一、基本开发环境二、相关模块的使用三、目标网页分析四、整体思路五、爬虫代码实现六、写入文档一、基本开发环境 Python 3.6 Pycharm 二、相关模块的使用 impo...
    99+
    2024-04-02
  • 爬虫笔记1:Python爬虫常用库
    请求库:1、urllib:urllib库是Python3自带的库(Python2有urllib和urllib2,到了Python3统一为urllib),这个库是爬虫里最简单的库。2、requests:requests属于第三方库,使用起来...
    99+
    2023-01-31
    爬虫 常用 笔记
  • 08 Python爬虫之selenium
    ---恢复内容开始--- 一. 先介绍图片懒加载技术   当获取一个网站的图片数据时,只能爬取到图片的名称,并不能获得链接,而且也不能获得xpath表达式。这是应用了图片懒加载技术。   - 图片懒加载技术的概念:     -- 图片懒加...
    99+
    2023-01-31
    爬虫 Python selenium
  • Python之爬虫基础
    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫...
    99+
    2023-08-31
    python 爬虫 开发语言
  • python之网络爬虫
    一、演绎自已的北爱         踏上北漂的航班,开始演奏了我自已的北京爱情故事二、爬虫11、网络爬虫的思路首先:指定一个url,然后打开这个url地址,读其中的内容。其次:从读取的内容中过滤关键字;这一步是关键,可以通过查看源代码的方式...
    99+
    2023-01-31
    爬虫 网络 python
  • python爬虫之requests库的使用详解
    目录python爬虫—requests库的用法基本的get请求带参数的GET请求:解析json使用代理获取cookie会话维持证书验证设置超时异常捕获异常处理 总结 python爬虫...
    99+
    2024-04-02
  • Python爬虫基础之selenium库怎么用
    小编给大家分享一下Python爬虫基础之selenium库怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、selenium简介官网总的来说: seleni...
    99+
    2023-06-15
  • python爬虫13:pymysql库
    python爬虫13:pymysql库 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ ...
    99+
    2023-10-07
    python 爬虫 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作