導航:首頁 > 編程語言 > python讀取網頁亂碼

python讀取網頁亂碼

發布時間:2023-08-22 01:59:50

python爬蟲抓取到的數據用網頁打開時是亂碼,怎麼解決

寫爬蟲是經常會遇到這樣的問題,這種問題很顯然是編碼問題,解決的方法其實也不難。
你可以用下面的兩個方法來解決你的編碼問題:
第一種是,通過瀏覽器打開你寫的html之後,找到瀏覽器中的文字編碼修改,將編碼改為Unicode編碼,即可修復。

第二種方法是修改你的前端代碼:在你的代碼output_html方法中,規定網頁的文字編碼即可

Ⅱ PYTHON獲取網頁源碼亂碼,怎麼辦

text 是系統自行解碼,部分網頁會不對。

content指定解碼,你的網頁是utf-8的,對應解碼就可以了

Ⅲ 用python抓取的網頁保存後為什麼亂碼

從你給的代碼來是Python2。我下面給一個基於Python3的代碼,可以參考一下:

romurllib.requestimporturlopen;
fromurllib.parseimportquote;
rawtext=urlopen('http://www.ccnu.e.cn',timeout=15).read();
print(rawtext)
rawtext=rawtext.decode('gbk')
print(rawtext)
f=open('ccnu.txt','w',encoding='utf8');
f.write(rawtext)

大概的原理是,在Python3下面,抓取到的頁面默認是byte類型的(通過第4行輸出的結果就可以看出來),我們需要根據網頁的實際編碼進行處理。本例中給的網頁使用的是gb2312。所以,我要先以gbk的格式進行解碼(gbk包含了gb2312,能夠表示更多的漢語字元),解碼後實際上得到的就是unicode碼了,由於我的控制台編碼設置的是utf8,在列印時系統會自動將字元串從unicode轉為utf8,所以第6行控制台列印結果正常;第7行寫入文件時也要指定文件的編碼格式,我這里選擇的是utf8,當然用gbk也是一切正常的,因為這個編碼設置的是保存文件的編碼,而不是原來那個網頁內容的編碼了。字元串編碼和文件編碼不是一回事。打開ccnu.txt發現無亂碼。

Python2的代碼我不熟。

建議你也在代碼中添加print 看控制輸出是否正常。如果控制台輸出正常,則有可能是在保存頁面文件時,沒有正確指定內容字元串的encode格式。或者把所有gb2312換為gbk再試試。

反正Python2下面極容易出現漢字亂碼,如果能理解編碼encode和解碼decode的含義,了解Python2的字元串處理過程,就可以避免這些問題。

Ⅳ python 抓取的網頁鏈接,鏈接中的中文亂碼問題

應該是shell的編碼和listinfo編碼不一樣導致的,部分正常,部分亂碼有可能是因為兩種編碼部分字元恰好一樣。


試試

importsys
printi[i].encode(sys.getdefaultencoding())

Ⅳ python爬蟲出現菱形問號亂碼的解決方法

在windows下使用非idle的其他ide編輯器,會碰到這個問題。對抓取到的網頁內容進行先解碼再編碼即可。

以requests為例:

r = r.content.decode('gbk').encode('utf-8')

出現編碼問題時,

1.仔細分析錯誤的類型。

看是decode(解碼)錯誤還是encode(轉碼)錯誤。

2.搞清自己處理的字元串是什麼類型的。

一般看網頁的charset,一般為gbk,gb2312或gb18030.其中包含字元的大小為gb2312 < gbk <gb18030。一般出現『gbk』 codec can』t decode,是因為

(1)要處理的字元串本身不是gbk編碼,但是你卻以gbk編碼去解碼

比如,字元串本身是utf-8的,但是你卻用gbk去解碼utf-8的字元串,所以結果不用說,則必然出錯。

(2)處理的字元的確是gbk的,但是其中夾雜的部分特殊字元,是gbk編碼中所沒有的

如果有些特殊字元是GB18030中有的,但是是gbk中沒有的。

則用gbk去解碼,去所不支持的字元,也比如會出錯。

所以,此種情況,可以嘗試用和當前編碼(gbk)所兼容的但所包含字元更多的編碼(gb18030)去解碼,或許就可以了。

3.然後換用這種的字元編碼去編碼或解碼。

詳情鏈接:https://www.crifan.com/summary_python_unicodedecode_error_possible_reasons_and_solutions/

閱讀全文

與python讀取網頁亂碼相關的資料

熱點內容
macpdfword轉換器 瀏覽:904
壓縮面膜是什麼材質 瀏覽:353
抖音發布作品怎麼建文件夾 瀏覽:13
安卓如何更改谷歌地區 瀏覽:273
airpods為什麼安卓連上聲音很大 瀏覽:510
聯想伺服器按鈕怎麼開不了機 瀏覽:93
蘋果xrapp程序庫沒有了怎麼辦 瀏覽:843
在上海程序員一個月多少工資 瀏覽:326
k歌解壓圖片 瀏覽:579
cad中清理多餘圖層的命令 瀏覽:989
華為nova8xe是安卓什麼 瀏覽:58
湯姆貓伺服器為什麼免費 瀏覽:274
safenet加密狗怎麼用 瀏覽:41
phpsql查詢變數 瀏覽:104
地磅儀表盤加密方法 瀏覽:480
brew安裝php環境 瀏覽:829
電腦版釘釘如何加密 瀏覽:709
android動畫結合 瀏覽:925
androidfb0 瀏覽:579
我的世界怎麼給伺服器稱號 瀏覽:462