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获取beautifulphoto随机某图片代码实例
Dec 18 Python
Python通过select实现异步IO的方法
Jun 04 Python
利用Tkinter(python3.6)实现一个简单计算器
Dec 21 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Django中信号signals的简单使用方法
Jul 04 Python
Python中的类与类型示例详解
Jul 10 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
python网络编程之多线程同时接受和发送
Sep 03 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
第十节--抽象方法和抽象类
2006/11/16 PHP
为你总结一些php信息函数
2015/10/21 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
微信公众号平台接口开发 获取access_token过程解析
2019/08/14 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python之os操作方法(详解)
2017/06/15 Python
如何在python中使用selenium的示例
2017/12/26 Python
详解python3中的真值测试
2018/08/13 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
浅谈Python中的字符串
2020/06/10 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
法律专业自我鉴定
2013/10/03 职场文书
环保标语口号
2014/06/13 职场文书
社会学专业求职信
2014/07/17 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
感恩教育主题班会
2015/08/12 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
服务器SVN搭建图文安装过程
2022/06/21 Servers