python中requests爬去網(wǎng)頁(yè)內(nèi)容出現(xiàn)亂碼問(wèn)題解決方法介紹
最近在學(xué)習(xí)python爬蟲(chóng),使用requests的時(shí)候遇到了不少的問(wèn)題,比如說(shuō)在requests中如何使用cookies進(jìn)行登錄驗(yàn)證,這可以查看這篇文章。這篇博客要解決的問(wèn)題是如何避免在使用requests的時(shí)候出現(xiàn)亂碼。
import requests res=requests.get("https://www.baidu.com") print res.content
以上就是使用requests進(jìn)行簡(jiǎn)單的網(wǎng)頁(yè)請(qǐng)求數(shù)據(jù)的方式。但是很容易出現(xiàn)亂碼的問(wèn)題。
我們可以通過(guò)在網(wǎng)頁(yè)上右擊查看源代碼中查看編碼方式:content="text/html;charset=utf-8"->
我們便可以知道網(wǎng)頁(yè)的編碼方式是utf8.由于中文的編碼方式為gbk,所以我們需要將編碼方式改變?yōu)間bk。
我查看了一些資料,說(shuō)requests可以自動(dòng)獲取網(wǎng)頁(yè)的編碼方式的,并且通過(guò)res.encode輸出一看是utf8,是的 沒(méi)錯(cuò)。但是輸出來(lái)的內(nèi)容中文存在亂碼。 有說(shuō)可以直接指定獲取到內(nèi)容的encode屬性即可,"res.encode='gbk'",但我嘗試了不可以的。
python內(nèi)部的編碼方式為utf8,也就是說(shuō)python在處理其他字符串內(nèi)容的時(shí)候首先要先將內(nèi)容轉(zhuǎn)化為utf8的編碼方式,然后在解碼為你想要的編碼方式輸出。
例如s=”中文” 為str類(lèi)型的字符串 編碼方式為gb2312
需要 s.decode("gb2312")將gb2312編碼方式的內(nèi)容解碼為Unicode編碼
然后輸出的時(shí)候要將s的編碼方式規(guī)定為gbk->s.encode("gbk")
言歸正傳,我們獲取到網(wǎng)頁(yè)內(nèi)容res后, 通過(guò)res.content.decode("utf8","ignore").encode("gbk","ignore")就不會(huì)有亂碼了。
這里所使用的ignore屬性意思是忽略其中有一場(chǎng)的編碼,僅顯示有效的編碼。
總結(jié)
以上就是本文關(guān)于python中requests爬去網(wǎng)頁(yè)內(nèi)容出現(xiàn)亂碼問(wèn)題解決方法的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:python編程之requests在網(wǎng)絡(luò)請(qǐng)求中添加cookies參數(shù)方法詳解、Python_LDA實(shí)現(xiàn)方法詳解等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Python中Word文件自動(dòng)化操作小結(jié)
Python-docx是一個(gè)Python庫(kù),提供了對(duì)Microsoft?Word(.docx文件)的讀寫(xiě)和修改功能,本文主要介紹了如何使用Python-docx實(shí)現(xiàn)Word文件自動(dòng)化操作,需要的可以參考下2024-04-04python開(kāi)發(fā)之tkinter實(shí)現(xiàn)圖形隨鼠標(biāo)移動(dòng)的方法
這篇文章主要介紹了python開(kāi)發(fā)之tkinter實(shí)現(xiàn)圖形隨鼠標(biāo)移動(dòng)的方法,涉及Python基于tkinter繪圖的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11實(shí)例講解Python爬取網(wǎng)頁(yè)數(shù)據(jù)
這篇文章給大家通過(guò)實(shí)例講解了Python爬取網(wǎng)頁(yè)數(shù)據(jù)的步驟以及操作過(guò)程,有興趣的朋友跟著學(xué)習(xí)下吧。2018-07-07Python實(shí)現(xiàn)ping指定IP的示例
今天小編就為大家分享一篇Python實(shí)現(xiàn)ping指定IP的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06刪除DataFrame中值全為NaN或者包含有NaN的列或行方法
今天小編就為大家分享一篇?jiǎng)h除DataFrame中值全為NaN或者包含有NaN的列或行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python random從集合中隨機(jī)選擇元素的方法
今天小編就為大家分享一篇python random從集合中隨機(jī)選擇元素的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python爬蟲(chóng)實(shí)戰(zhàn)之爬取攜程評(píng)論
今天帶大家爬取攜程評(píng)論練練手,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06