博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网页中的编码和Python处理
阅读量:3978 次
发布时间:2019-05-24

本文共 856 字,大约阅读时间需要 2 分钟。

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

可以从网页, 代码里的meta标签的charset属性中看到其编码方式, 倒如<meta charset="utf-8>指定了网页的编码为utl-8

用于解析文本的Python库主要有BeautifulSoup.BeautifulSoup使用编码自动检测字库(unicodeDammit、chardet等) 来识别输人文档的编码, 并将其转换成unicode编码:同时, BeautifulSoup将输出文档转换成urf-8编码、值得注意的是,编码自动检测功能会搜索整个文本来检测编码,时间成本高,检测结果也可能会错误, 因此, 如果预先知道文档编码, 可以通过在创建BeautifulSoup对象的时候没置from_encoding参数来减少检测错认率和检测时间

soup =BeautifulSoup(html_input,from_encoding="gbk")

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

soup=prettify("gb2312")

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

import chardetimport requestsres=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’];来得到页面编码

转载地址:http://ofmki.baihongyu.com/

你可能感兴趣的文章
百度统计接口调用——获取站点访问数据
查看>>
Java WEB开发基础知识
查看>>
[Java Web开发系列课程]从0.5开始学习Java Web开发(一):学习大纲
查看>>
birt标签的使用
查看>>
2012年1月8号订火车票历程
查看>>
My97日期控件
查看>>
30分钟3300%性能提升——python+memcached网页优化小记
查看>>
confmgr项目,django,dwz相关问题
查看>>
linux文件共享
查看>>
linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结(tar包解压)
查看>>
vi和vim区别
查看>>
linux下如何导入导出MySQL数据库(mysql导入导出)
查看>>
程序员经典语录
查看>>
Django性能优化
查看>>
python模块学习 ---- smtplib 邮件发送
查看>>
Python模块学习 ---- subprocess 创建子进程
查看>>
python求时间差
查看>>
Python网页抓取urllib,urllib2,httplib[2]
查看>>
Python urllib2递归抓取某个网站下图片
查看>>
JS清空多文本框|文本域
查看>>