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解决方案:WindowsError: [Error 2]
Aug 28 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
python读写json文件的简单实现
Apr 11 Python
python学生信息管理系统
Mar 13 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
python数据挖掘需要学的内容
Jun 23 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Python中的sys.stdout.write实现打印刷新功能
Feb 21 Python
Python基于requests库爬取网站信息
Mar 02 Python
浅析Python的命名空间与作用域
Nov 25 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 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/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php实现短信发送代码
2015/07/05 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python检测网络延迟的代码
2018/05/15 Python
pandas 选择某几列的方法
2018/07/03 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python nmap实现端口扫描器教程
2020/05/28 Python
Python实现搜索算法的实例代码
2020/01/02 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
运动会四百米广播稿
2014/01/19 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
材料物理专业求职信
2014/09/01 职场文书
个人党性锻炼总结
2015/03/05 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
远程教育学习心得体会
2016/01/23 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android