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之有点简约的元组
Sep 24 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
python3正则模块re的使用方法详解
Feb 11 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 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
2006/10/09 PHP
Jquery倒计时源码分享
2014/05/16 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
python difflib模块示例讲解
2017/09/13 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
Python类的动态绑定实现原理
2020/03/21 Python
python中get和post有什么区别
2020/06/19 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
北大自主招生自荐信
2013/10/19 职场文书
2014年政教处工作总结
2014/12/20 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
Linux系统下安装PHP7.3版本
2021/06/26 PHP
再谈python_tkinter弹出对话框创建
2022/03/20 Python