Python中动态检测编码chardet的使用教程


Posted in Python onJuly 06, 2017

前言

在互联网的世界里,每个页面都使用了编码,但是形形色色的编码让我们的代码何以得知其棉麻格式呢?charset将很好的解决这个问题。

1. chardet

chardet是Python社区提供了一个类库包,方便我们在代码中动态检测当前页面或者文件中的编码格式信息。接口非常的简单和易用。

Project主页: https://github.com/chardet/chardet

本地下载地址:http://xiazai.3water.com/201707/yuanma/chardet(3water.com).rar

文档主页: http://chardet.readthedocs.io/en/latest/usage.html

2. 使用示例

Notice: 笔者使用的python 3.5 +

Case 1: 检测特定页面的编码格式

import chardet
import urllib.request
TestData = urllib.request.urlopen('http://www.baidu.com/').read()
print(chardet.detect(TestData))

输出结果:

{'confidence': 0.99, 'encoding': 'utf-8'}

结果分析, 其准确率99%的概率,编码格式为utf-8

使用说明:detect()为其关键方法

Case 2: 增量检测编码格式

import urllib.request
from chardet.universaldetector import UniversalDetector
usock = urllib.request.urlopen('http://yahoo.co.jp/')
detector = UniversalDetector()
for line in usock.readlines():
detector.feed(line)
if detector.done: break
detector.close()
usock.close()
print(detector.result)

输出结果:

{'confidence': 0.99, 'encoding': 'utf-8'}

说明: 为了提高预测的准确性,基于dector.feed()来实现持续的信息输入,在信息足够充足之后结束信息输入,给出相应的预测和判断。

如果需要复用detector方法,需要进行detector.reset()进行重置,从而可以复用。

Case 3: 在安装chardet之后,可以基于命令行来检测文件编码

% chardetect somefile someotherfile
somefile: windows-1252 with confidence 0.5
someotherfile: ascii with confidence 1.0

在系统层面,可以直接基于命令行来进行文件编码检测,非常简单易用。

3. 总结

chardet是非常易用和功能强大的Python包,相信大家在web世界中遨游之时,肯定会用上这个chardet的。 如有问题,欢迎大家反馈给我。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python生成验证码实例
Aug 21 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
Python常用的json标准库
Feb 19 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
教你怎么用python selenium实现自动化测试
May 27 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 #Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 #Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 #Python
Python如何快速实现分布式任务
Jul 06 #Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 #Python
Python标准库sched模块使用指南
Jul 06 #Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 #Python
You might like
PHP 危险函数解释 分析
2009/04/22 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
JS正则表达式验证数字代码
2014/01/28 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
python Xpath语法的使用
2020/11/26 Python
pandas针对excel处理的实现
2021/01/15 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
销售团队口号大全
2014/06/06 职场文书
经典团队口号大全
2014/06/21 职场文书
委托证明范本
2014/11/25 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
详解MySQL集群搭建
2021/05/26 MySQL