python urllib爬取网页编码问题
来源:互联网 发布:无锡亚信数据有限公司 编辑:程序博客网 时间:2024/05/16 15:16
利用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问题原版
http://stackoverflow.com/questions/3746993/change-python-byte-type-to-string
http://stackoverflow.com/questions/3703276/how-to-tell-if-a-file-is-gzip-compressed/3703300#3703300
0 0
- python urllib爬取网页编码问题
- python urllib2爬取网页,编码问题
- python-快速使用urllib爬取网页(1)
- python-快速使用urllib爬取网页(4-GET)
- python-快速使用urllib爬取网页(5-POST)
- python-快速使用urllib爬取网页(6-代理服务器)
- python-快速使用urllib爬取网页(7-DebugLog)
- python-快速使用urllib爬取网页(8-URLError)
- python-快速使用urllib爬取网页(小结)
- python urllib解析网页编码出错
- Python爬取网页的编码处理
- 爬取网页数据 编码转换问题
- python urllib, urllib2实现登陆和简单爬取网页(个人坑点笔记)
- Python爬虫实例(4)-用urllib、re和正则表达式爬取网页图片
- python-快速使用urllib爬取网页(2-Headers属性)
- python-快速使用urllib爬取网页(3-超时异常)
- Python urllib 爬取基金数据
- python用urllib爬取百度
- [Redis]QForkMasterInit错误的解决…
- win10输入法问题 中英文切换切不出来
- JSTL —— <c:><fmt:><fn:> 标签库
- 将任意数转换成二进制
- IE get请求传参中文乱码
- python urllib爬取网页编码问题
- 观察者模式
- 多位数乘一位数
- NSDataDetector,字符串中检测URL
- 《深入分析Java web技术内幕》笔记
- struts类型自动转换
- Codeforces 236B Easy Number Challenge 【因子和】
- 单元测试之OCUnit
- 机器学习算法----贝叶斯网络