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 域名分析工具实现代码
Jul 15 Python
Python中input和raw_input的一点区别
Oct 21 Python
在Django的视图中使用数据库查询的方法
Jul 16 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
python实现任意位置文件分割的实例
Dec 14 Python
Python3爬楼梯算法示例
Mar 04 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
python全局变量引用与修改过程解析
Jan 07 Python
详解Python牛顿插值法
May 11 Python
使用Python获取字典键对应值的方法
Apr 26 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实现的zip文件内容比较类
2014/09/24 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
详解python中init方法和随机数方法
2019/03/13 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
程序员机试试题汇总
2012/03/07 面试题
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
法制宣传教育方案
2014/05/09 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL