博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python urllib爬取网页编码问题
阅读量:6678 次
发布时间:2019-06-25

本文共 646 字,大约阅读时间需要 2 分钟。

利用python urllib库爬取网页,有时获得的网页打印或写文件遇到编码问题,找了许久终于知道为什么了。

首先利用urlopen()函数获取网页对象,再利用info()函数打印网页的相关信息,确定网页的编码及是否压缩。

import urllib.requestfp = urllib.request.urlopen('http://www.sina.com')mybytes = fp.read()text = mybytes.decode('utf8')print(text)
报错

显示编码错误,刚开始,傻傻地试各种编码,utf-8,gbk,gb2312,都不行,心里堵得慌,是在玩我吗?

so,开始怀疑是bug,但是有的网页又不会出错,这就奇怪了,最后google找到了一个解释,说是返回的网页数据是压缩格式,恍然大悟,先打印网页信息,看一眼

gzip,网页是压缩后的,所以要先解压,上代码

import urllib.requestimport zlibfp = urllib.request.urlopen('http://www.sina.com')mybytes = fp.read()decompressed_data = zlib.decompress(mybytes ,16+zlib.MAX_WBITS)text = decompressed_data.decode('utf8')print(text)print(fp.info())
结果

Google问题原版

你可能感兴趣的文章
socket和Websocket
查看>>
(二)线程同步_6---修改锁的竞争原则
查看>>
Android ExpandableListView
查看>>
Intent跳转时,activity的生命周期
查看>>
Java基础数据结构和堆栈
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
SCCM2012升级SP1系列之部署SCCM2012①准备系统架构和数据库
查看>>
我的友情链接
查看>>
ubuntu建立和删除用户
查看>>
Html5本地图片读取及裁剪
查看>>
MySQL数据库操作个人手记
查看>>
我的友情链接
查看>>
泡沫学员CSS切图学习总结
查看>>
centos 学习日记 文件隐藏属性 chattr lsattr
查看>>
redhat yum 失败
查看>>
log4j2日志框架使用简单概述
查看>>
新手处理事故之误删boot目录以及更严重的删除操作
查看>>
bootstap-table 只显示列名和表格不显示数据
查看>>
linux 网站架设调优Apache(四)
查看>>