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之集合的关系
Sep 24 Python
Python lxml模块安装教程
Jun 02 Python
利用Python如何生成随机密码
Apr 20 Python
微信跳一跳python辅助脚本(总结)
Jan 11 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
详解django自定义中间件处理
Nov 21 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
pytorch 实现变分自动编码器的操作
May 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在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php下获取http状态的实现代码
2014/05/09 PHP
CI框架Session.php源码分析
2014/11/03 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python内存动态分配过程详解
2019/07/15 Python
用Python写一个自动木马程序
2019/09/17 Python
解决python 找不到module的问题
2020/02/12 Python
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
春节联欢晚会主持词
2014/03/24 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
戒赌保证书
2015/05/11 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python