亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python抓取網頁時字符集轉換問題處理方案分享

2020-02-23 05:30:02
字體:
來源:轉載
供稿:網友

問題提出:

    有時候我們采集網頁,處理完畢后將字符串保存到文件或者寫入數據庫,這時候需要制定字符串的編碼,如果采集網頁的編碼是gb2312,而我們的數據庫是utf-8的,這樣不做任何處理直接插入數據庫可能會亂碼(沒測試過,不知道數據庫會不會自動轉碼),我們需要手動將gb2312轉換成utf-8。

首先我們知道,python里的字符默認是ascii碼,英文當然沒問題啦,碰到中文的時候立馬給跪。

不知道你還記不記得,python里打印中文漢字的時候需要在字符串前面加 u:

print u"來搞基嗎?"

這樣子中文才能顯示,這里面的u的作用就是將后面的字符串轉換為unicode碼,這樣中文才能得到正確的顯示。
這里與之相關的有一個unicode()函數,用法如下

str="來搞基"str=unicode(str,"utf-8")print str

與u的區別是,這里用unicode將str轉換為unicode編碼,需要正確指定第二個參數,這里的utf-8是我test.py腳本自身的文件字符集,默認的可能是ansi。
unicode這是一個關鍵,下面繼續

我們開始抓取百度首頁,注意,游客訪問百度首頁,查看網頁源代碼,它的charset=gb2312。

import urllib2def main():  f=urllib2.urlopen("http://www.baidu.com")  str=f.read()  str=unicode(str,"gb2312")  fp=open("baidu.html","w")  fp.write(str.encode("utf-8"))  fp.close()if __name__ == '__main__' :  main()

解釋:
我們首先用urllib2.urlopen()方法將百度首頁抓取到,f是句柄 ,用str=f.read()將所有源代碼讀入str中

搞清楚,str里面就是我們抓取的html源代碼,由于網頁默認的字符集是gb2312,所以如果我們直接保存到文件中,文件編碼將是ansi。

對于大部分人來說,其實這就足夠了,但是有時候我就想把gb2312轉換成utf-8的該怎么辦呢?

首先:
    str=unicode(str,"gb2312") #這里的gb2312就是str的實際字符集,我們現在將其轉換成unicode

然后:
    str=str.encode("utf-8") #將unicode的字符串重新編碼成utf-8

最后:

    將str寫入到文件中,打開文件看一下編碼屬性,發現是utf-8的了,把<meta charset="gb2312"改成<meta charset="utf-8" ,就是一個utf-8的網頁了。做了這么多其實就完成了一個gb2312->utf-8的轉碼。


總結:

    我們回顧一下,如果需要將字符串按照指定的字符集保存,有以下幾個步驟:

    1:用unicode(str,"原來的編碼")將str解碼成unicode字符串

    2:將unicode字符串str 使用 str.encode("指定的字符集") 轉換成你指定的字符集

    3:將str保存文件,或者寫入數據庫等操作,當然,編碼你已經指定了,不是嗎?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费不卡欧美自拍视频| 亚洲人成电影网站色www| 中文字幕精品av| 国产精品一区二区三区毛片淫片| 国产成人精品视频在线| 日韩资源在线观看| 亚洲天堂av在线播放| 97视频国产在线| 91麻豆桃色免费看| 亚洲成年网站在线观看| 国产日韩专区在线| 久久久久久久久久久免费| 国产视频精品va久久久久久| 91久久精品国产91久久性色| 国产精品网站入口| 国模精品一区二区三区色天香| 日韩国产精品一区| 久久精品国产96久久久香蕉| 国产午夜精品视频免费不卡69堂| 性欧美激情精品| 日韩av成人在线| 91久久精品国产91久久性色| 国产精品电影网站| 国产欧美日韩丝袜精品一区| 久久久久免费精品国产| 亚洲色图偷窥自拍| 午夜精品理论片| 国产日韩欧美在线| 久久精品在线视频| 在线亚洲午夜片av大片| 久久视频国产精品免费视频在线| 美日韩丰满少妇在线观看| 欧美激情亚洲视频| 7777精品视频| 中文字幕视频在线免费欧美日韩综合在线看| 欧美黑人又粗大| 亚洲一区国产精品| 欧美日韩亚洲精品一区二区三区| 韩国日本不卡在线| 福利一区福利二区微拍刺激| 日韩av在线一区| 国产精品一区二区三区久久久| 欧美精品在线看| 日韩精品中文字| 国产精品欧美日韩一区二区| 亚洲成人精品av| 亚洲精品电影久久久| 国产主播欧美精品| 69久久夜色精品国产69乱青草| 亚洲一区av在线播放| 成人免费自拍视频| 久久精品国产久精国产一老狼| 久久精品国产精品亚洲| 97成人精品视频在线观看| 亚洲国产精品999| 在线免费看av不卡| 精品亚洲精品福利线在观看| 尤物九九久久国产精品的分类| 一本色道久久综合狠狠躁篇的优点| 欧美日韩国产91| 亚洲男人的天堂网站| 国产a级全部精品| 久久影院在线观看| 国产精品久久999| 97精品国产97久久久久久| 国产成人97精品免费看片| 久久久久久国产免费| 日韩高清电影免费观看完整版| 性欧美xxxx视频在线观看| 国产精品96久久久久久又黄又硬| 日韩精品亚洲视频| 日韩精品中文字幕视频在线| 欧美性猛交xxxxx水多| 中日韩美女免费视频网址在线观看| 亚洲第一精品夜夜躁人人躁| 亚洲欧美色图片| 国产精品高潮在线| 一区二区日韩精品| 97色在线观看免费视频| 精品国产一区二区三区久久狼黑人| 欧美视频不卡中文| 欧美日韩国产一中文字不卡| 国产精品久久久久久av福利| 91在线免费视频| 欧美午夜久久久| 久久久国产视频| 久久视频中文字幕| 欧美激情影音先锋| 国产精品视频一| 91网站免费观看| 国产一区二区美女视频| 亚洲国产精品va在看黑人| 中文日韩在线观看| 97色在线视频观看| 欧美一级成年大片在线观看| 欧美乱大交xxxxx另类电影| 日韩高清有码在线| 久久久久久久久久久91| 色综合影院在线| 国产精品久久久精品| 欧美国产高跟鞋裸体秀xxxhd| 亚洲肉体裸体xxxx137| 国产精品激情av电影在线观看| 久久久女人电视剧免费播放下载| 韩国日本不卡在线| 91在线高清视频| www国产精品com| 亚洲国产精品va在线看黑人| 国产亚洲一区二区精品| www.日韩欧美| 国产精品久久综合av爱欲tv| 国产成人精品视频在线| 亚洲精品自产拍| 国产精品久久电影观看| 欧美日韩精品在线| 亚洲免费一级电影| 亚洲精品乱码久久久久久金桔影视| 亚洲在线免费观看| 欧美日韩午夜激情| 国产精品精品久久久久久| 日韩欧美亚洲范冰冰与中字| 中文字幕亚洲欧美| 97久久精品人搡人人玩| 亚洲天堂av网| 欧美一级电影免费在线观看| 日韩美女写真福利在线观看| 日韩av片免费在线观看| 日韩精品视频免费| 欧美视频一区二区三区…| 最近2019中文字幕在线高清| 亚洲欧美一区二区三区情侣bbw| 亚洲视频在线观看| 亚洲美女性视频| 精品国模在线视频| 久久久www成人免费精品张筱雨| 亚洲美女av在线播放| 国产精品永久免费视频| 亚洲黄色免费三级| 欧美精品少妇videofree| 91精品中文在线| 国产午夜精品全部视频在线播放| 97免费中文视频在线观看| 日韩欧美国产高清91| 国产精品视频久| 国产精品高潮呻吟视频| 在线视频免费一区二区| 国产一区二区三区四区福利| 亚洲老头同性xxxxx| www日韩中文字幕在线看| 久久久精品日本| 日韩精品视频在线观看网址| 欧美在线欧美在线| 亚洲视频在线播放| 久久视频这里只有精品| 久久久www成人免费精品| 午夜精品一区二区三区在线播放| 欧美在线不卡区| 国产精品一区二区三区免费视频| 欧美日韩电影在线观看| 欧美精品激情blacked18| 美女久久久久久久久久久| 宅男66日本亚洲欧美视频| 欧美激情视频一区二区| 欧美大片在线看|