解決爬蟲中文亂碼問題


今天群里有個人反映某個網址爬出來的網頁源代碼出現中文亂碼,我研究了半天,終於找到了解決方法。

一開始,我是這樣做的:

import requests

url = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9'
print requests.get(url).content

這樣做,如果用命令行去運行,得到的內容中文顯示正常,但如果用pycharm運行得到的確實亂碼。

這個問題我一時半會還不知道是為什么,如果有人知道,請告訴我,謝謝!

 

后來,我在網上查閱資料,發現可以通過下面這種方式解決中文亂碼問題:

首先,我們在瀏覽器中打開網址,通過查看源代碼可以發現這個網址采用的編碼是GBK:

然后我們通過下面這段代碼發現通過requests獲取的編碼不是GBK,而是ISO-8859-1。

import requests

url = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9'
print requests.get(url).encoding

所以打印出來的就是亂碼,我們需要將編碼改為GBK才可以:

import requests

url = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9'
r = requests.get(url)
r.encoding = 'GBK'
print r.text

這樣做,無論你是用pycharm還是命令行去運行,得到的都是正常的中文了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM