网页中的编码和Python处理

  • 不同网站的编码并本完全相同,在爬虫应用中解析文本信息的时候需要考虑网页的编码方式, 否则获得的结果可能是乱码

可以从网页, 代码里的meta标签的charset属性中看到其编码方式, 倒如soup =BeautifulSoup(html_input,from_encoding="gbk")

此外,可以使用prettify()或者encoding()方法来指定输出文档的编码

soup=prettify("gb2312")

自动检测一个页面的编码方式,可以通过chardet包来进行,需要事先安装,使用如下:

import chardet
import requests
res=requests.get("http://fudan.edu.cn")
cs=chardet.detect(res.content)#通过响应信息的content属性来判断页面的编码方式

chardet.detect的检测结果是一个字典,如下,字典的关键字包括’encoding‘和’confidence‘等,其中,前者的值就是页面编码,后者表示自动检测是对结果的确信度[0,1]

{'encoding':'utf-8','confidence':1.0,'language':''}

因此可以通过cs[‘encoding’];来得到页面编码

你可能感兴趣的:(爬虫,python,爬虫)