`

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

 
阅读更多

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

什么是转义字符

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

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

Python 反转义字符串

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

# python2
import HTMLParser
>>> HTMLParser().unescape('a=1&amp;b=2')
'a=1&b=2'

Python3 把 HTMLParser 模块迁移到 html.parser

# python3
>>> from html.parser import HTMLParser
>>> HTMLParser().unescape('a=1&amp;b=2')
'a=1&b=2'

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

# python3.4
>>> import html
>>> html.unescape('a=1&amp;b=2')
'a=1&b=2'

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

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

>>> from xml.sax.saxutils import unescape
>>> unescape('a=1&amp;b=2')
'a=1&b=2'

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

分享到:
评论

相关推荐

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

    在Python编程中,处理HTML转义字符是一项常见的任务,特别是在进行网络爬虫或者解析HTML文档时。HTML转义字符是用来避免HTML元素中的特殊字符被解释为标签或特殊符号的。例如,小于号 `在HTML中是用于开始标签的,但...

    Python 转义字符逐个详解

    Python 转义字符逐个详解。一次性全面了解所有转义字符的含义及其用法。

    python处理html转义字符的方法详解

    ### Python处理HTML转义字符的方法详解 在进行Web开发或者数据抓取的过程中,经常会遇到HTML转义字符(也称为HTML字符实体)。这类字符通常用于表示HTML文档中的特殊符号,如`, `&gt;`, `&`等,以避免被误解释为HTML...

    string转义字符.jpg

    python字符串转义字符python字符串转移字符python字符串转义字符python字符串转义字符python字符串转义字符

    Python对HTML转义字符进行反转义的实现方法

    什么是转义字符 在 HTML 中 &lt;、&gt;、& 等字符有特殊含义(&lt;,&gt; 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要...用 Python 来处理转义字符串有多种方式,而且

    从零开始学Python编程之转义字符练习代码

    转义字符以反斜杠(\)开头,它告诉Python解释器后面跟着的字符应该被特殊处理。在这个"从零开始学Python编程之转义字符练习代码"中,我们可以看到几个基本的转义字符示例。 首先,我们有`\n`,这是换行符。在`...

    测量程序编制 - python 12数据类型:String(字符串)-转义字符.pptx

    在Python中,转义字符主要用于以下几种情况: 1. **续行符**:当反斜杠出现在行尾时,它会告诉Python接下来的一行应该与当前行连接,形成一个长字符串。例如: ```python test ='abcdefghijk' \'lmnopq' \'...

    一篇文章搞懂python的转义字符及用法

    像这种情况,我们需要在字符中使用特殊字符时,就需要用到转义字符,在python里用反斜杠\转义字符。 在交互式解释器中,输出的字符串用引号引起来,特殊字符用反斜杠\转义。虽然可能和输入看上去不太一样,但是两个...

    (word完整版)Python转义字符.doc

    Python 转义字符是 Python 语言中的一种特殊字符,用于在字符串中表示特殊意思。这些字符都以反斜杠(\)开头,紧跟着一个或多个字符。这些转义字符的使用可以使得字符串变得更加灵活和丰富。 在 Python 中,转义...

    Python 转义字符详细介绍

    ### Python 转义字符详解 在编程语言中,转义字符是一种特殊的字符序列,用于表示那些无法直接通过键盘输入或者具有...希望本文能为你提供有关Python转义字符的全面理解,帮助你在实际开发过程中更好地利用这些特性。

    Python转义字符.docx

    以下是常见的Python转义字符: 1. `\n` - 换行符,用于在文本中创建新行。 2. `\t` - 横向制表符,用于在文本中添加水平间距,类似于键盘上的Tab键。 3. `\r` - 回车符,将光标移动到当前行的起始位置。 4. `\\` - ...

    python的字符串、转义字符、格式化字符

    接着是转义字符的特殊用法,如果你希望在字符串中直接使用反斜杠 `\`,可以使用 `r` 前缀来创建原始字符串(raw string),这样反斜杠就不会被解释为转义字符。例如,`r"\n"` 会得到一个包含反斜杠和字母 `n` 的字符...

    Python转义字符[定义].pdf

    ### Python转义字符详解 #### 一、转义字符概述 在编程语言中,转义字符是用来表示特殊字符的一种方式。Python中使用反斜杠(`\`)作为转义字符的标志,允许开发者在字符串中表示无法直接输入的特殊字符。 #### ...

    (完整版)Python转义字符.doc

    Python 转义字符是指在字符串中使用特殊字符时,Python 使用反斜杠(\)转义字符。常见的转义字符有: * \(在行尾时) 续行符 * \\反斜杠符号 * \'单引号 * \"双引号 * \a响铃 * \b退格(Backspace) * \e转义 * \...

Global site tag (gtag.js) - Google Analytics