用requests获取源代码时,如果是中文网页,就可能会出现乱码,下面我以中关村的网站为例:

import requests

url = 'http://desk.zol.com.cn/meinv/'
r = requests.get(url)
print r.text

执行上面这个脚本你会看到中文部分都变成乱码。

print r.encoding

通过上面的代码你会发现从requests获取到的编码是ISO-8859-1,而该网页的编码是gb2312,所以打印出来的编码就都变成乱码了,那么该如何解决这个问题呢?

其实只需将编码设为gb2312即可,完整的代码如下:

import requests

url = 'http://desk.zol.com.cn/meinv/'
r = requests.get(url)
r.encoding = 'gb2312'
print r.text

有些童鞋喜欢用content来获取源代码,如果直接将上面代码中的text改为content的话,你会发现获取到的源代码依旧是乱码,所以上面的代码不适用于content方式获取源代码。

通过content获取源代码的童鞋可以看这里:

import requests
from lxml import etree url = 'http://desk.zol.com.cn/meinv/'
r = requests.get(url)
code = r.content.decode('gb2312')
print code

最新文章

  1. Android 强烈推荐:程序员接私活那点事
  2. Android版本4.0~7.0
  3. JS中innerHTML 和innerText和value的区别
  4. Win10如何设置相关性
  5. kail新手安装
  6. Online DDL与pt-online-schema-change
  7. CS=0xFFFF IP=0x0000与CS=F000 IP=FFF0
  8. 关于Weblogic Server(介绍)
  9. VS2008 error C2470
  10. ThinkPHP 的模型使用对数据库增删改查(五)
  11. jQuery的理论基础
  12. python之控制台(console)颜色显示
  13. 第十三课 CSS外观及样式的应用 css学习3
  14. pytorch基础教程1
  15. PHP大数据处理要注意的
  16. Hibernate 的Configuration、sessionFactory和session和transaction对象解释
  17. javascript完美拖拽的实现
  18. 『PyTorch』第十六弹_hook技术
  19. 如何通过rman的增量备份恢复dataguard中standby端的数据
  20. Servlet入门实践

热门文章

  1. javascript打开新窗口
  2. java日期格式处理
  3. LintCode-366.斐波纳契数
  4. 【MVC4升级到MVC5】ASP.Net MVC 4项目升级MVC 5的方法
  5. lol人物模型提取(一)
  6. 某一线互联网公司前端面试题总结css部分
  7. intellij idea 之 CheckStyle 代码格式校验
  8. STL--heap概述:make_heap,sort_heap,pop_heap,push_heap
  9. 身份证验证php
  10. 用php实现一个双向队列 如何实现?