Python信息抽取之亂碼解決辦法
Python信息抽取之亂碼解決辦法
就事論事,直說(shuō)自己遇到的情況,和我不一樣的路過(guò)吧,一樣的就看看吧
信息抓取,用python,beautifulSoup,lxml,re,urllib2,urllib2去獲取想要抽取的頁(yè)面內(nèi)容,然后使用lxml或者beautifulSoup進(jìn)行解析,插入mysql 具體的內(nèi)容,好了貌似很簡(jiǎn)單很easy的樣子,可是里面的惡心之處就來(lái)了,第一,國(guó)內(nèi)開(kāi)發(fā)網(wǎng)站的人在指定網(wǎng)站編碼或者是保存網(wǎng)站源碼的時(shí)候并沒(méi)有考慮什么編碼,反正一句話,一個(gè)網(wǎng)站即使你用工具查看或者查看源碼頭信息查看到他們的源碼是utf-8,或者GBK之類的,也別信,哎,什么東西信了就遭殃了,即<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
以下給出一些流程:(具體各個(gè)庫(kù)不是我這里向說(shuō)的哦)
import urllib2
import chardet
html = urllib2.urlopen("某網(wǎng)站")
print chardet.detect(html) #這里會(huì)輸出一個(gè)字典{'a':0.99999,'encoding':'utf-8'}
好,這整個(gè)html的編碼都知道,該插入以u(píng)tf-8建立的mysql數(shù)據(jù)庫(kù)了吧,但是我就在插入的時(shí)候發(fā)生錯(cuò)誤了,因?yàn)槲沂褂胠xml以后的字符串不是utf-8,而是Big5(繁體字編碼),還有各種未知編碼EUC-JP(日本語(yǔ)編碼),OK,我采取了unicode方法,先對(duì)這個(gè)字段進(jìn)行解碼,在進(jìn)行編碼
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 = '未知'
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Python開(kāi)發(fā)必須掌握的Pip使用全攻略
在這篇文章中,我們將深入探討Python的主要包管理工具——Pip,包括Pip的基本概念、安裝和配置、中國(guó)國(guó)內(nèi)鏡像源的使用等,需要的可以參考一下2023-07-07
pycharm 如何縮進(jìn)和SQL亂碼及SQL包含變量
這篇文章主要介紹了pycharm 如何縮進(jìn)和SQL亂碼及SQL包含變量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
詳解Python如何利用turtle繪制中國(guó)結(jié)
春節(jié)是中國(guó)特有的傳統(tǒng)節(jié)日,中國(guó)結(jié)是中華民族特有的純粹的文化精髓,富含豐富的文化底蘊(yùn)。本文將利用turtle繪制一個(gè)中國(guó)結(jié),需要的可以參考一下2022-02-02
Python數(shù)據(jù)分析之Excel和Text文件的讀寫(xiě)操作方法
Python操作Excel分為兩個(gè)主要形式,讀寫(xiě)和交互式操作,可以用不同的第三方工具,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之Excel和Text文件的讀寫(xiě)操作方法,需要的朋友可以參考下2024-08-08
使用python Fabric動(dòng)態(tài)修改遠(yuǎn)程機(jī)器hosts的方法
今天小編就為大家分享一篇使用python Fabric動(dòng)態(tài)修改遠(yuǎn)程機(jī)器hosts的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Keras設(shè)定GPU使用內(nèi)存大小方式(Tensorflow backend)
這篇文章主要介紹了Keras設(shè)定GPU使用內(nèi)存大小方式(Tensorflow backend),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05

