導航:首頁 > 編程語言 > 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讀取網頁亂碼相關的資料

熱點內容
mc手機版如何免費開伺服器 瀏覽:627
加密貨幣延期發布 瀏覽:978
福昕pdf閱讀器刪除 瀏覽:436
app收集信息怎麼設置 瀏覽:288
python少兒編程圖 瀏覽:747
命令方塊解禁 瀏覽:930
海康威視伺服器地址和設備標識 瀏覽:298
做網站用php還是html 瀏覽:199
臉部識別演算法模型廠家 瀏覽:176
反編譯的程序帶注釋嗎 瀏覽:713
安裝軟體伺服器未響應怎麼解決 瀏覽:531
閥門開度單片機 瀏覽:568
python多線程有什麼坑 瀏覽:681
程序員從互聯網跳槽到銀行里 瀏覽:244
百度網盤資源解壓後暫不支持在線 瀏覽:220
android自動化環境 瀏覽:253
androidrealm加密 瀏覽:513
地圖正在解壓縮是什麼意思 瀏覽:217
電腦軟體能放在文件夾嗎 瀏覽:786
uc伺服器怎麼打開 瀏覽:364