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使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
详解Python if-elif-else知识点
Jun 11 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
PyTorch 导数应用的使用教程
Aug 31 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
Python必备技巧之函数的使用详解
Apr 04 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中对用户身份认证实现两种方法
2011/06/04 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
js实现列表按字母排序
2020/08/11 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python中执行shell的两种方法总结
2017/01/10 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
python实现扫描ip地址的小程序
2019/04/16 Python
Python itertools.product方法代码实例
2020/03/27 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
yy婚礼司仪主持词
2014/03/14 职场文书
房地产广告策划方案
2014/05/15 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫