Python信息抽取之乱码解决办法


Posted in Python onJune 29, 2017

Python信息抽取之乱码解决办法

就事论事,直说自己遇到的情况,和我不一样的路过吧,一样的就看看吧

信息抓取,用python,beautifulSoup,lxml,re,urllib2,urllib2去获取想要抽取的页面内容,然后使用lxml或者beautifulSoup进行解析,插入mysql 具体的内容,好了貌似很简单很easy的样子,可是里面的恶心之处就来了,第一,国内开发网站的人在指定网站编码或者是保存网站源码的时候并没有考虑什么编码,反正一句话,一个网站即使你用工具查看或者查看源码头信息查看到他们的源码是utf-8,或者GBK之类的,也别信,哎,什么东西信了就遭殃了,即<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

以下给出一些流程:(具体各个库不是我这里向说的哦)

 import urllib2

 import chardet


html = urllib2.urlopen("某网站")

  print chardet.detect(html) #这里会输出一个字典{'a':0.99999,'encoding':'utf-8'}

好,这整个html的编码都知道,该插入以utf-8建立的mysql数据库了吧,但是我就在插入的时候发生错误了,因为我使用lxml以后的字符串不是utf-8,而是Big5(繁体字编码),还有各种未知编码EUC-JP(日本语编码),OK,我采取了unicode方法,先对这个字段进行解码,在进行编码

if chardet.detect(name)['encoding'] == 'GB2312':
name = unicode(name,'GB2312','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'Big5':
 name = unicode(name,'Big5','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'ascii':
 name = unicode(name,'ascii','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'GBK':
 name = unicode(name,'GBK','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'EUC-JP':
 name = unicode(name,'EUC-JP','ignore').encode('utf-8','ignore')
else:
  name = '未知'

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python实现一个简单的MySQL类
Jan 07 Python
深入浅析Python中的yield关键字
Jan 24 Python
Python socket实现简单聊天室
Apr 01 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
django 信号调度机制详解
Jul 19 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Python sorted对list和dict排序
Jun 09 Python
python中if嵌套命令实例讲解
Feb 25 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Python基本知识点总结
Apr 07 Python
Python sklearn分类决策树方法详解
Sep 23 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 #Python
python笔记:mysql、redis操作方法
Jun 28 #Python
老生常谈Python序列化和反序列化
Jun 28 #Python
python flask实现分页效果
Jun 27 #Python
Django自定义分页效果
Jun 27 #Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 #Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 #Python
You might like
PHP框架Laravel的小技巧两则
2015/02/10 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
Python中input与raw_input 之间的比较
2017/08/20 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
UNIX特点都有哪些
2016/04/05 面试题
设计部经理的岗位职责
2013/11/16 职场文书
实习自我评价怎么写
2013/12/02 职场文书
自考生自我评价分享
2014/01/18 职场文书
三下乡活动方案
2014/01/31 职场文书
植树节口号
2014/06/21 职场文书
个人买房协议书范本
2014/10/06 职场文书
提档介绍信范文
2015/10/22 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
使用Python获取字典键对应值的方法
2022/04/26 Python