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 回调函数和回调方法的实现分析
Mar 23 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
Nov 02 Python
Python中最大递归深度值的探讨
Mar 05 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
Pycharm中import torch报错的快速解决方法
Mar 05 Python
Python类的动态绑定实现原理
Mar 21 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python3爬虫里关于代理的设置总结
Jul 30 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
css图片自适应大小
2007/11/28 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python使用epoll实现服务端的方法
2018/10/16 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
25道Java面试题集合
2013/05/21 面试题
销售人员个人求职信
2013/09/26 职场文书
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js