自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

盤點(diǎn)三種Python網(wǎng)絡(luò)爬蟲過(guò)程中的中文亂碼的處理方法

開發(fā) 后端
本文基于粉絲提問(wèn),針對(duì)Python網(wǎng)絡(luò)爬蟲過(guò)程中的中文亂碼問(wèn)題,給出了3種亂碼解決方法,順利幫助粉絲解決了問(wèn)題。

[[428525]]

大家好,我是Python進(jìn)階者。前幾天給大家分享了一些亂碼問(wèn)題的文章,感興趣的小伙伴可以前往:UnicodeEncodeError: 'gbk' codec can't encode character解決方法,這里再次給大家祭出網(wǎng)絡(luò)爬蟲過(guò)程中三種中文亂碼的處理方案,希望對(duì)大家的學(xué)習(xí)有所幫助。

前言

前幾天有個(gè)粉絲在Python交流群里問(wèn)了一道關(guān)于使用Python網(wǎng)絡(luò)爬蟲過(guò)程中中文亂碼的問(wèn)題,如下圖所示。

看上去確實(shí)頭大,對(duì)于爬蟲初學(xué)者來(lái)說(shuō),這個(gè)亂碼擺在自己面前,猶如攔路虎一般難頂。不過(guò)別慌,小編在這里給大家整理了三種方法,專門用于針對(duì)中文亂碼的,希望大家在后面再次遇到中文亂碼的問(wèn)題,在此處可以得到靈感!

一、思路

其實(shí)解決問(wèn)題的關(guān)鍵點(diǎn)就是在于一點(diǎn),就是將亂碼的部分進(jìn)行處理,而處理的方案主要可以從兩個(gè)方面進(jìn)行出發(fā)。其一是針對(duì)整體網(wǎng)頁(yè)進(jìn)行提前編碼,其二是針對(duì)局部具體中文亂碼的部分進(jìn)行編碼處理。這里例舉3種方法,肯定還有其他的方法的,也歡迎大家在評(píng)論區(qū)諫言。

二、分析

其實(shí)關(guān)于中文亂碼的表現(xiàn)形式有很多,但是常見的兩種如下:

1、當(dāng)出現(xiàn)網(wǎng)頁(yè)編碼為gbk,獲取到的內(nèi)容在控制臺(tái)打印類似如下情況的時(shí)候:

  1. ÃÀÅ® µçÄÔ×À ¼üÅÌ »ú·¿ ¿É°® Ð¡½ã½ã4k±ÚÖ½ 

2、當(dāng)出現(xiàn)網(wǎng)頁(yè)編碼為gbk,獲取到的內(nèi)容在控制臺(tái)打印類似如下情況的時(shí)候:

  1. �װŮ�� ��Ů ˮ СϪ Ψ�� 

雖然看上去控制臺(tái)輸出正常,沒(méi)有報(bào)錯(cuò):

  1. Process finished with exit code 0 

但是輸出的中文內(nèi)容,卻不是普通人能看得懂的。

這種情況下的話,就可以通過(guò)使用本文給出的三種方法進(jìn)行解決,屢試不爽!

三、具體實(shí)現(xiàn)

1)方法一:將requests.get().text改為requests.get().content 我們可以看到通過(guò)text()方法獲取到的源碼,之后進(jìn)行打印輸出的話,確實(shí)是會(huì)存在亂碼的,如下圖所示。

此時(shí)可以考慮將請(qǐng)求變?yōu)?content,得到的內(nèi)容就是正常的了。

2)方法二:手動(dòng)指定網(wǎng)頁(yè)編碼

  1. # 手動(dòng)設(shè)定響應(yīng)數(shù)據(jù)的編碼格式 
  2. response.encoding = response.apparent_encoding 

這個(gè)方法稍微復(fù)雜一些,但是比較好理解,對(duì)于初學(xué)者來(lái)說(shuō),還是比較好接受的。

如果覺(jué)得上面的方法很難記住,或者你可以嘗試直接指定gbk編碼也可以進(jìn)行處理,如下圖所示:

上面介紹的兩種方法都是針對(duì)網(wǎng)頁(yè)進(jìn)行整體編碼,效果顯著,接下來(lái)的第三種方法就是針對(duì)中文局部亂碼部分使用通用編碼方法進(jìn)行處理。

3)方法三:使用通用的編碼方法

  1. img_name.encode('iso-8859-1').decode('gbk'

使用通用的編碼方法,對(duì)中文出現(xiàn)亂碼的地方進(jìn)行編碼設(shè)定即可。還是當(dāng)前的這個(gè)例子,針對(duì)img_name進(jìn)行編碼設(shè)定,指定編碼并進(jìn)行解碼,如下圖所示。

如此一來(lái),中文亂碼的問(wèn)題就迎刃而解了。

四、總結(jié)

我是Python進(jìn)階者。本文基于粉絲提問(wèn),針對(duì)Python網(wǎng)絡(luò)爬蟲過(guò)程中的中文亂碼問(wèn)題,給出了3種亂碼解決方法,順利幫助粉絲解決了問(wèn)題。

 

責(zé)任編輯:姜華 來(lái)源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2011-08-15 17:28:19

SQL Server事務(wù)處理存儲(chǔ)過(guò)程

2021-02-06 11:26:55

Python開發(fā)list

2021-02-03 18:05:30

Python方法列表

2010-11-23 10:11:23

mysql建表亂碼

2021-08-10 10:14:14

存儲(chǔ)接口存儲(chǔ)設(shè)備存儲(chǔ)

2021-11-11 11:24:54

JavaScript模型事件

2025-03-19 10:22:09

JavaScript編程語(yǔ)言開發(fā)

2009-05-07 15:02:42

OracleJoin查詢

2020-06-17 10:52:00

DDoS攻擊網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2022-07-13 16:06:16

Python參數(shù)代碼

2024-11-15 07:00:00

Python發(fā)送郵件

2010-05-31 16:57:09

2023-06-25 07:57:31

2010-09-08 13:29:48

CSS

2021-12-20 07:11:26

Java List排序 Java 基礎(chǔ)

2021-11-01 09:00:30

CSVExcelPython

2020-11-01 17:10:46

異步事件開發(fā)前端

2024-07-01 12:42:58

2009-06-09 16:53:22

Java Swing處理方法比較

2011-04-08 09:25:50

虛擬機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)