今天羣裏有我的反映某個網址爬出來的網頁源代碼出現中文亂碼,我研究了半天,終於找到了解決方法。php
一開始,我是這樣作的:python
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運行獲得的確實亂碼。瀏覽器
這個問題我一時半會還不知道是爲何,若是有人知道,請告訴我,謝謝!post
後來,我在網上查閱資料,發現能夠經過下面這種方式解決中文亂碼問題:編碼
首先,咱們在瀏覽器中打開網址,經過查看源代碼能夠發現這個網址採用的編碼是GBK:url
而後咱們經過下面這段代碼發現經過requests獲取的編碼不是GBK,而是ISO-8859-1。spa
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仍是命令行去運行,獲得的都是正常的中文了。code