溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

解決Python網(wǎng)頁(yè)爬蟲之中文亂碼問(wèn)題

發(fā)布時(shí)間:2020-09-02 05:18:20 來(lái)源:腳本之家 閱讀:306 作者:ToringZZZ 欄目:開發(fā)技術(shù)

Python是個(gè)好工具,但是也有其固有的一些缺點(diǎn)。最近在學(xué)習(xí)網(wǎng)頁(yè)爬蟲時(shí)就遇到了這樣一種問(wèn)題,中文網(wǎng)站爬取下來(lái)的內(nèi)容往往中文顯示亂碼。看過(guò)我之前博客的同學(xué)可能知道,之前爬取的一個(gè)學(xué)校網(wǎng)頁(yè)就出現(xiàn)了這個(gè)問(wèn)題,但是當(dāng)時(shí)并沒有解決,這著實(shí)成了我一個(gè)心病。這不,剛剛一解決就將這個(gè)方法公布與眾,大家一同分享。

首先,我說(shuō)一下Python中文亂碼的原因,Python中文亂碼是由于Python在解析網(wǎng)頁(yè)時(shí)默認(rèn)用Unicode去解析,而大多數(shù)網(wǎng)站是utf-8格式的,并且解析出來(lái)之后,python竟然再以Unicode字符格式輸出,會(huì)與系統(tǒng)編碼格式不同,導(dǎo)致中文輸出亂碼,知道原因后我們就好解決了。下面上代碼,實(shí)驗(yàn)對(duì)象仍是被人上了無(wú)數(shù)遍的百度主頁(yè)~

# -*- coding: utf-8 -*-

import urllib2
import re
import requests
import sys

import urllib
#設(shè)置編碼
reload(sys)
sys.setdefaultencoding('utf-8')
#獲得系統(tǒng)編碼格式
type = sys.getfilesystemencoding()
r = urllib.urlopen("http://www.baidu.com")
#將網(wǎng)頁(yè)以u(píng)tf-8格式解析然后轉(zhuǎn)換為系統(tǒng)默認(rèn)格式
a = r.read().decode('utf-8').encode(type)
print a

最后輸出效果,中文完美輸出

解決Python網(wǎng)頁(yè)爬蟲之中文亂碼問(wèn)題

以上這篇解決Python網(wǎng)頁(yè)爬蟲之中文亂碼問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI