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 list排序的两种方法及实例讲解
Mar 20 Python
python逆向入门教程
Jan 15 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
Python iter()函数用法实例分析
Mar 17 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
浅谈python之新式类
Aug 12 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
Python Django路径配置实现过程解析
Nov 05 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-fpm的配置详解
2013/06/03 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
PHP的反射机制实例详解
2017/03/29 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
九种js弹出对话框的方法总结
2013/03/12 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
Python中Django发送带图片和附件的邮件
2017/03/31 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
2014年度考核工作总结
2014/12/24 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL