搜索
简帛阁>技术文章>Python信息抽取之乱码解决办法

Python信息抽取之乱码解决办法

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,beautifulSoup,lxml,re,urllib2,urllib2
Matplotlib是Python的一个很好的绘图包,但是其本身并不支持中文(貌似其默认配置中没有中文字体),所以如果绘图中出现了中文,就会出现乱码。matplotlib绘制图像有中文标注时会有乱码
目录前言5条标注数据,搞定物流快递单信息抽取智能立体库盘点前言近几年,制造业作为国民经济主体,是国家创造力、竞争力和综合国力的重要体现。作为制造强国建设的主攻方向,可以说,智能制造发展水平关乎我国未来
公司项目中需要通过后台发送邮件,邮件内容包括图片附件。如果通过PHPmailer发送,由于邮件服务器可能存在延迟现象,通过PHPmailer发送邮件,需要等待邮件发送成功后才能返回结果,这在实践中证明
参考1参考2参考3CSV是英文CommaSeparateValues(逗号分隔值)的缩写,顾名思义,文档的内容是由“,”分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开。CSV文档是一种
Python新手编写脚本处理数据,各种心酸各种语法查找,以此留念!原始数据格式如下图所示:这里是一个人脸测试数据,其中每行第一个为测试图片编号,后面为Top7图片编号及其对应的评分,即与测试图片的相似
目录一、数据地址实体抽取的目的及问题二、方法一:调用ahocorasick库ahocorasick安装:ahocorasick使用:三、方法一:调用cpca库1、安装cpca库2、cpca库使用方法3
一、添加系统变量在window环境变量中,添加环境变量PYTHONIOENCODINGUTF8。二、在文件中设置输出编码importioimportsyssysstdoutioTextIOWrappe
Python是个好工具,但是也有其固有的一些缺点。最近在学习网页爬虫时就遇到了这样一种问题,中文网站爬取下来的内容往往中文显示乱码。看过我之前博客的同学可能知道,之前爬取的一个学校网页就出现了这个问
python读写文件有时候会出现‘XXX'编码不能打开XXX什么的,用记事本打开要读取的文件,另存为UTF8编码,然后再用py去读应该可以了。如果还不行,那么尝试使用文件原有的编码方式读取,参考之前的