python urllib爬取网页编码问题

简介: 利用python urllib库爬取网页,有时获得的网页打印或写文件遇到编码问题,找了许久终于知道为什么了。首先利用urlopen()函数获取网页对象,再利用info()函数打印网页的相关信息,确定网页的编码及是否压缩。

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

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

import urllib.request

fp = 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.request
import zlib

fp = 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

目录
相关文章
|
24天前
|
存储 Python
Python文件编码概念详解
Python文件编码概念详解
20 1
|
9天前
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
80 9
|
10天前
|
Python IDE 开发工具
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
|
13天前
|
存储 XML 数据处理
Python网络实践:去哪儿旅游数据爬取指南
Python网络实践:去哪儿旅游数据爬取指南
|
16天前
|
XML 数据采集 API
Beautiful Soup:Python中的网页解析利器
**Beautiful Soup是Python的HTML和XML解析库,简化了数据提取过程。它提供简单的方法来解析文档树,自动处理编码问题。安装使用`pip install beautifulsoup4`,可配合lxml解析器。基本用法包括:导入库、解析元素(如`find()`和`find_all()`)、遍历文档树和修改文档。在实际项目中,常用于网络爬虫和数据抓取,例如抓取网页新闻标题。**【6月更文挑战第8天】
31 4
|
16天前
|
数据采集 JSON 算法
使用Python爬取华为市场APP应用进行分析
这个网站也是作者最近接触到的一个APP应用市场类网站。讲实话,还是蛮适合新手朋友去动手学习的。毕竟爬虫领域要想进步,还是需要多实战、多分析!该网站中的一些小细节也是能够锻炼分析能力的,也有反爬虫处理。甚至是下载APP的话在Web端是无法拿到APK下载的直链,需要去APP端接口数据获取
|
22天前
|
Python 数据采集 安全
淘宝商品评论数据爬取:Python实战指南
淘宝商品评论数据的自动爬取可以为市场分析和用户行为研究提供宝贵的信息资源。然而,这一过程需要严格遵守法律法规,尊重数据的版权和隐私。通过合理利用Python的网络爬虫技术,可以在遵循道德规范的前提下,高效地完成数据采集任务。 通过本文的指南,希望你能对淘宝商品评论数据的爬取有一个清晰的认识,并能够安全、合法地进行数据采集。
|
25天前
|
存储 Python
Python中文编码
Python中文编码
|
15天前
|
自然语言处理 Python
Python 中的编码与解码字符集与 Unicode 的详解
【6月更文挑战第10天】Python编程中,理解字符编码(如ASCII、UTF-8)和Unicode至关重要,它们关乎文本数据的正确处理。编码是字符转字节,解码则相反。UTF-8能表示几乎所有字符,适合多语言。Unicode为全球字符提供唯一编码。处理不同源文本时,需注意编码一致性,否则可能产生乱码。Python支持Unicode,但错误的编码解码操作可能导致问题。要确保程序处理文本的正确性,需选合适编码方案并保持编码一致性。
|
15天前
|
存储 算法 数据挖掘
【贪心算法经典应用】哈夫曼编码原理与算法详解 python
【贪心算法经典应用】哈夫曼编码原理与算法详解 python