天天看點

爬取的文檔突然中文全部亂碼 - Python

爬取網站内容時, 有可能會出現非法字元, 進而導緻整個文檔中文亂碼.

全部變成一下格式的内容:

​​å<9c>¨å<85>¨å<9b>½æ<94>¿æ³<95>æ<9c>ºå<85>³å¼<80>å±<95>社ä¼<9a>主ä¹<89>æ³<95>æ²»ç<90><86>念æ<95><99>è<82>²ï¼<8c>æ<98>¯ä¸­å¤®æ<94>¿æ³<95>å§<94>继20__å¹´é<83>¨ç½²å¼<80>å±<95>â<80><9c>è§<84>è<8c><83>æ<89>§æ³<95>è¡<8c>为ï¼<8c>ä¿<83>è¿<9b>æ<89>§æ³<95>å<85>¬æ­£â<80><9d>ä¸<93>项æ<95>´æ<94>¹æ´»å<8a>¨ä¹<8b>å<90><8e>ç<9a><84>å<8f><88>ä¸<80>é<87><8d>大å<86>³ç­<96>ï¼<8c>å<85>·æ<9c><89>é<87><8d>大è<80><8c>æ​​      
爬取的文檔突然中文全部亂碼 - Python

本文針對 剛開始文檔内容中文正常顯示, 後面突然全部中文亂碼, 遇到這種情況該如何解決?

首先, 打開檔案時, ​

​f = open('存儲路徑', 'a', encoding='utf-8')​

​​, 要設定編碼. 爬蟲在爬取内容儲存時,可以這樣寫入​

​f.write(json.dumps(擷取的内容, ensure_ascii=False) + '\n')​

忽略到非法字元, 然後重新讀取文檔内容, 另外儲存到一個檔案中即可
f_path = '亂碼的文檔的路徑'
f_content = '想要儲存的正常文檔的路徑'
f = open(f_content, 'a', encoding='utf-8')
with open(f_path, 'r', encoding='utf-8', errors='ignore') as fr:
    for line in fr.readlines():
        f.write(line)

f.close()