用 Python 处理 HTML 转义字符的5种方式

Photo byAhmed SaffuonUnsplash

写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有转移字符,这些字符我们需要把它转义成真正的字符。

什么是转义字符

在 HTML 中 、、 等字符有特殊含义( 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字符串(Escape Sequence),例如 的转义字符是 ,浏览器渲染 HTML 页面时,会自动把转移字符串换成真实字符。

转义字符(Escape Sequence)由三部分组成:第一部分是一个 & 符号,第二部分是实体(Entity)名字,第三部分是一个分号。 比如,要显示小于号(

Python 反转义字符串

用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义串的模块是 。

Python3 把 HTMLParser 模块迁移到

到 python3.4 之后的版本,在 html 模块新增了 unescape 方法。

推荐最后一种写法,因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用,意味着之后的版本有可能会被彻底移除。

另外,sax 模块也有支持反转义的函数

当然,你完全可以实现自己的反转义功能,不复杂,当然,我们崇尚不重复造轮子。

本文来自企鹅号 - Python之禅媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

[视频直播]本周日先行者视频“React多级菜单

第一个知识点,就是递归。 递归往简单了说,就是函数不断调用自身,同时设定一个退出条件,达成条件就结束调用自身,否则就成无限递归了。 看一小段JSON: { ...

1819
来自专栏kalifaの日々

BeautifulSoup使用find,find_all常见问题汇总

1.soup.find(class='abc')报错,原因是find和find_all里面都不能直接把class作为参数,改写成如下任意一种就对了: 第一种,给...

3345
来自专栏C/C++基础

C++使用引用捕获异常

catch子句捕获异常时既可以按值传递,也可以按照引用传递,甚至按照指针传递,但推荐使用引用捕获异常。考察如下程序:

522
来自专栏简书专栏

基于bs4+requests的python爬虫伪装 - 草稿

要导入fake-useragent库,需要先用pip安装,安装命令:pip install fake-useragent params是爬虫伪装的参数,数据类...

682
来自专栏冷冷

Jquery 获取checkbox属性checked为undefined和改变状态 值不变

API: As of jQuery 1.6, the .attr() method returns undefined for attributes that ...

1806
来自专栏史上最简单的Spring Cloud教程

javascript入门笔记8-window对象

History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。 注意:从窗口被打开的那一刻开始记录,...

17210
来自专栏Java技术分享

XML基本语法

 导入一个XML文件可分为如下几部分内容:文档声明 、元素、属性、注释 、CDATA区 ,特殊字符 、处理指令

18510
来自专栏进击的君君的前端之路

jQuery选择器、Dom操作、样式、事件处理

1153
来自专栏达摩兵的技术空间

jq使用建议

我们在一些陈旧或者传统mvc的项目中还是会经常使用jq,但是由于对jq api或者核心思想不熟悉,导致我们的某些写法并不是特别好,这里会摘录一些一些并给出大家更...

311
来自专栏小怪聊职场

爬虫课堂(十五)|Request和Response(请求和响应)

2966

扫码关注云+社区