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中字符串的格式化方法小结
May 03 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
python小型的音频操作库mp3Play
Apr 24 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
详解php中 === 的使用
2016/10/24 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
js函数调用的方式
2014/05/06 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
react写一个select组件的实现代码
2019/04/03 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python中asyncore的用法实例
2014/09/29 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Python 串口通信的实现
2020/09/29 Python
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
冰淇淋店创业计划书范文
2013/12/27 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
先进党支部事迹材料
2014/01/13 职场文书
运动会跳远加油稿
2014/02/20 职场文书
个人党性锻炼总结
2015/03/05 职场文书
天气温馨提示语
2015/07/14 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技