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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python中encode()方法的使用简介
May 18 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python基于ID3思想的决策树
Jan 03 Python
python3如何将docx转换成pdf文件
Mar 23 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
Python3.9新特性详解
Oct 10 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Django接受前端数据的几种方法总结
2016/11/04 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
安全协议书
2014/04/23 职场文书
大跃进口号
2014/06/16 职场文书
学习退步检讨书
2014/09/28 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
机关保密工作承诺书
2015/05/04 职场文书
运动会200米广播稿
2015/08/19 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python