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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
对numpy中轴与维度的理解
Apr 18 Python
PyQt5每天必学之进度条效果
Apr 19 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
详解Python requests 超时和重试的方法
Dec 18 Python
Python编程中flask的简介与简单使用
Dec 28 Python
python实现剪切功能
Jan 23 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
Python爬虫之爬取二手房信息
Apr 27 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在线打包程序源码
2008/07/27 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
完美解决在oj中Python的循环输入问题
2018/06/25 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
KTV的创业计划书范文
2014/02/02 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
2015员工年度考核评语
2015/03/25 职场文书
春季运动会加油词
2015/07/18 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
Python 匹配文本并在其上一行追加文本
2022/05/11 Python