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中的RSS处理
Apr 13 Python
九步学会Python装饰器
May 09 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
详解python中的模块及包导入
Aug 30 Python
使用python代码进行身份证号校验的实现示例
Nov 21 Python
Pytorch之保存读取模型实例
Dec 30 Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 Python
python中操作文件的模块的方法总结
Feb 04 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
如何用RxJS实现Redux Form
2018/12/29 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
小班评语大全
2014/05/04 职场文书
低碳环保口号
2014/06/12 职场文书
土地转让协议书
2014/09/27 职场文书
党员三严三实心得体会
2014/10/13 职场文书
工作自我评价范文
2015/03/05 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
学习经验交流会策划书
2015/11/02 职场文书
Python基础之元类详解
2021/04/29 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android