python 處理抓取網頁亂碼問題一招鮮

相信用python的人必定在抓取網頁時,被編碼問題弄暈過一陣 html

前幾天寫了一個測試網頁的小腳本,並查找是否包含指定的信息。 python

在html = urllib2.open(url).read()  時,打印到控制檯始終出現亂碼。 測試

通常的解決辦法就是html.decode('utf-8').encode('gb2312'),不過這個即便用了,也沒能解決個人問題 編碼

這裏有兩個問題,第一個你要知道網頁的編碼格式是utf-8     第二你得肯定你的系統是gb2312的,能不能主動獲取網頁的編碼格式,並主動獲取系統編碼格式,像這樣 url

網頁編碼 = 獲取網頁編碼 spa

系統編碼 = 獲取系統編碼 code

html.decode(網頁編碼).encode(系統編碼)  即便我不知道網頁編碼,系統編碼,只要雙方能轉 ,就行htm

網頁編碼 = re.complier('正則獲取meta裏的編碼格式') utf-8

系統編碼 =  sys.getfilesystemencoding()  ########關鍵的關鍵 get

html.decode(網頁編碼).encode(系統編碼)   如今打印,一切正常了。我才無論系統什麼編碼,只要你能轉。

相關文章
相關標籤/搜索