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中自定义函数的可变参数的使用及注意点
Jun 21 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python处理PDF及生成多层PDF实例代码
Apr 24 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python如何实现转换URL详解
Jul 02 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
Django的models中on_delete参数详解
Jul 16 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
elasticsearch python 查询的两种方法
Aug 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中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
Vue异步加载about组件
2017/10/31 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python3.5运算符操作实例详解
2019/04/25 Python
Python变量访问权限控制详解
2019/06/29 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
机械工程及其自动化专业求职信
2014/08/08 职场文书
《迟到》教学反思
2016/02/24 职场文书
自荐信范文
2019/05/20 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
python多线程方法详解
2022/01/18 Python