python3爬虫的编码问题
来源:互联网 发布:乌海四中网络选课系统 编辑:程序博客网 时间:2024/06/06 00:10
from urllib.request import urlopen
textPage = urlopen("https://fengshenfeilian.github.io/")
print(textPage.read())
在非纯英文网页上爬取数据时,总是会出现各种意想不到的乱码。
比如上文的代码运行结果含有中文,且所有中文都被替换成乱码。
这个问题是因为python默认的把文本读成ascII
在这里我们要是用UTF-8编码格式,就可以把一切字符正常的显示了
上文代码改成:
from urllib.request import urlopen
textPage = urlopen("https://fengshenfeilian.github.io/")
print(str(textPage.read(),'utf-8'))
显示结果完全正确
用BeautifulSoup 和Python 3.x 对文档进行UTF-8 编码,如下所示:
html = urlopen("https://fengshenfeilian.github.io/")
bsObj = BeautifulSoup(html)
content = bsObj.find("div", {"id":"mw-content-text"}).get_text()
content = bytes(content, "UTF-8")
content = content.decode("UTF-8")
你可能打算以后用网络爬虫的时候全部采用UTF-8 编码读取内容,毕竟UTF-8 也可以完美地处理ASCII 编码。但是,要记住还有9% 的网站使用ISO 编码格式。所以在处理纯文本文档时,想用一种编码搞定所有的文档依旧不可能。
处理HTML 页面的时候,网站其实会在<head> 部分显示页面使用的编码格式。大多数网站,尤其是英文网站,都会带这样的标签:
<meta charset="utf-8" />
而ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会,http://www.ecma-international.org/)网站的标签是这样:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
如果你要做很多网络数据采集工作,尤其是面对国际网站时,建议你先看看meta 标签的内容,用网站推荐的编码方式读取页面内容。
- python3爬虫的编码问题
- Python3的编码问题
- python3的编码问题
- python3 的编码问题
- Python3的编码问题
- Python3碰到的编码问题
- 关于python3的编码问题
- python3的字符串编码问题
- Python3实现简单爬虫及一些编码问题
- Python3中关于中文编码的问题
- 解决python3编码问题的方法
- python3在windows下的编码问题
- Python2与Python3的编码问题
- 关于python3,numpy-loadtxt的编码问题
- 关于python3的一些编码问题
- python3 编码问题
- Python3 字符编码问题
- python3编码问题
- Leetcode 79. Word Search 要真正理解回溯的写法!
- modprobe drdb FATAL: Module drdb not found
- APP开发实战158-局部广播(Local Broadcast)
- Android性能优化(一)--关于内存溢出
- How to Run a Shell Script with Mac App Sandbox Enabled
- python3爬虫的编码问题
- bzoj 1271 二分
- CentOS 搭建的Java环境
- JavaScript快速入门
- mykernel实验指导(操作系统是如何工作的)
- [翻译]斯坦福CS 20SI:基于Tensorflow的深度学习研究课程笔记,Lecture note 4: How to structure your model in TensorFlow
- Zipline的安装教程
- TCP/IP基础四
- APP开发实战159-广播的安全性