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根据经纬度计算距离示例
Feb 16 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
python和js交互调用的方法
Jun 23 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 Python
python playwrigh框架入门安装使用
Jul 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文件上传原理简单分析
2011/05/29 PHP
PHP中soap的用法实例
2014/10/24 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
详解React 条件渲染
2020/07/08 Javascript
React实现轮播效果
2020/08/25 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python制作刷网页流量工具
2017/04/23 Python
python字符串的方法与操作大全
2018/01/30 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
办公室人员先进事迹
2014/01/27 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
安全生产宣传标语
2014/06/06 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Python使用Web框架Flask开发项目
2022/06/01 Python