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备份Mysql脚本
Aug 11 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
使用C++扩展Python的功能详解
Jan 12 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 25 Python
python 自动刷新网页的两种方法
Apr 20 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
一个MYSQL操作类
2006/11/16 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
《乡下孩子》教学反思
2014/04/17 职场文书
项目投资合作意向书
2014/07/29 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
小学中等生评语
2014/12/29 职场文书
鸟的天堂导游词
2015/01/31 职场文书
恰同学少年观后感
2015/06/08 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
MySQL注入基础练习
2021/05/30 MySQL