5、检测编码
检测编码是经常要在爬虫过程中使用的方式,对网络上抓取到的内容进行编码的检测判断,为后续的内容提取、数据清洗等提供可靠的依据。
1# 导入 chardet 库
2import chardet
3test_str = “Python 集中营”
4# 使用 detect() 检测编码
5print chardet.detect(test_str)
为了避免大文本的转换太过耗费时间,chardet 库还提供了另外一种检测方式,使用对象 UniversalDetector 的逐行检测方式会大大的提高效率。
1# 导入 UniversalDetector 对象
2from chardet.universaldetector import UniversalDetector
3
4# 定义获取编码函数
5def getEncodeInfo(file):
6 # 打开一个文件
7 with open(file, ‘rb’) as f:
8 # universaldetector 对象赋值
9 detector = UniversalDetector()
10 for line in f.readlines():
11 # 遍历检测编码
12 detector.feed(line)
13 # 确保检测达到最小置信阈值为 True 时返回
14 if detector.done:
15 break
16 # 检测完之后关闭源文本
17 detector.close()
18 # 返回编码
19 return detector.result[‘encoding’]