python3访问sina首页中文的处理方法


Posted in Python onFebruary 24, 2014
"""
如果只用普通的
import urllib.request
html = urllib.request.urlopen("http://www.sina.com").read()
print(html.decode('gbk'))
出现下面的错误
builtins.UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 1: illegal multibyte sequence
怎么办?原来是有的网站将网页用gzip压缩了 。
请看下面的代码
建议大家用python2
import urllib2
from StringIO import StringIO
import gzip
request = urllib2.Request('http://www.sina.com')
request.add_header('Accept-encoding', 'gzip')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
    buf = StringIO( response.read())
    f = gzip.GzipFile(fileobj=buf)
    data = f.read()
print data.decode("GBK").encode('utf-8')
"""
import io
import urllib.request as r
import gzip
req = r.Request("http://www.sina.com", headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36", "Accept-Encoding": "gzip"})
bs = r.urlopen(req).read()
bi = io.BytesIO(bs)
gf = gzip.GzipFile(fileobj=bi, mode="rb")
print(gf.read().decode("gbk"))
Python 相关文章推荐
Python将xml和xsl转换为html的方法
Mar 10 Python
Django权限机制实现代码详解
Feb 05 Python
简单谈谈Python的pycurl模块
Apr 07 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
python实现QQ邮箱发送邮件
Mar 06 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 Python
python原始套接字编程示例分享
Feb 21 #Python
python实现360皮肤按钮控件示例
Feb 21 #Python
python实现360的字符显示界面
Feb 21 #Python
python和pyqt实现360的CLable控件
Feb 21 #Python
python使用7z解压软件备份文件脚本分享
Feb 21 #Python
python发布模块的步骤分享
Feb 21 #Python
python列表操作使用示例分享
Feb 21 #Python
You might like
基于php使用memcache存储session的详解
2013/06/25 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
Yii快速入门经典教程
2015/12/28 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
Python Requests安装与简单运用
2016/04/07 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
wxPython实现绘图小例子
2019/11/19 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
市场营销管理制度
2014/01/29 职场文书
毕业生自荐书
2014/02/03 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
推荐信模板
2014/05/09 职场文书
外贸业务员求职信
2014/06/16 职场文书
新党章心得体会
2014/09/04 职场文书
汽车转让协议书
2015/01/29 职场文书
保研导师推荐信
2015/03/25 职场文书
电力工程合作意向书
2015/05/11 职场文书
北京青年观后感
2015/06/15 职场文书
运动会开幕式致辞
2015/07/29 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
初中信息技术教学反思
2016/02/16 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL