今天群里有我的反映某个网址爬出来的网页源代码出现中文乱码,我研究了半天,终于找到了解决方法。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