当前位置: 首页 > 编程笔记 >

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

颜经艺
2023-03-14
本文向大家介绍python处理html转义字符的方法详解,包括了python处理html转义字符的方法详解的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了python处理html转义字符的方法。分享给大家供大家参考,具体如下:

最近在用Python处理网页数据时,经常遇到一些html转义字符(也叫html字符实体),例如<> 等。字符实体一般是为了表示网页中的预留字符,比如>用>表示,防止被浏览器认为是标签,具体参考w3school的HTML 字符实体。虽然很有用,但是它们会极度影响对于网页数据的解析。为了处理这些转义字符,有如下解决方案:

1、使用HTMLParser处理

import HTMLParser
html_cont = " asdfg>123<"
html_parser = HTMLParser.HTMLParser()
new_cont = html_parser.unescape(html_cont)
print new_cont #new_cont = " asdfg>123<"

转换回去(只是空格转不回去了):

import cgi
new_cont = cgi.escape(new_cont)
print new_cont #new_cont = " asdfg&gt;123&lt;"

2、直接挨个替换

html_cont = "&nbsp;asdfg&gt;123&lt;"
new_cont = new_cont.replace('&nbsp;', ' ')
print new_cont #new_cont = " asdfg&gt;123&lt;"
new_cont = new_cont.replace('&gt;', '>')
print new_cont #new_cont = " asdfg>123&lt;"
new_cont = new_cont.replace('&lt;', '<')
print new_cont #new_cont = " asdfg>123<"

不知道还有没有更好的办法。

另外stackoverflow上给出了在xml中处理转义字符的解答:python - What's the best way to handle &nbsp;-like entities in XML documents with lxml? - Stack Overflow。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

 类似资料:
  • 本文向大家介绍python字符串反转的四种方法详解,包括了python字符串反转的四种方法详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、用reduce函数方法 2、字符串切割 3、用reversed方法,把字符串变成列表反转后拼接 4、for循环

  • 问题内容: 有时候,当我从文件或用户那里得到输入时,我会得到一个带有转义序列的字符串。我想以与Python处理字符串文字中的转义序列相同的方式来处理转义序列。 例如,假设myString定义为: 我想要一个process执行此操作的函数(我称之为): 该函数可以处理Python中的所有转义序列(在上面的链接的表格中列出),这一点很重要。 Python是否具有执行此操作的功能? 问题答案: 正确的做

  • 在《 Python字符串》一节中我们曾提到过转义字符,就是那些以反斜杠 开头的字符。 ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为 转义字符(Escape Character)。 如果你对 ASCII 编码不了解,请猛击: ASCII

  • 反转义 HTML 字符。 使用带有正则表达式的 String.replace() 来匹配需要被转义的字符,使用一个回调函数使用字典(对象)替换每个 HTML 实体字符为其关联的非转义字符。 const unescapeHTML = str => str.replace( /&amp;|&lt;|&gt;|'|&quot;/g, tag => ({ '

  • 转义一个字符串,以用于HTML。 使用带有正则表达式的 String.replace() 来匹配需要转义的字符,使用一个回调函数使用字典(对象)替换每个字符为器关联的 HTML 实体字符。 const escapeHTML = str => str.replace( /[&<>'"]/g, tag => ({ '&': '&amp;',

  • 问题内容: 线 打印一个反斜杠()。和 打印双反斜杠()。明白了! 但是为什么在以下代码中: 是输出: 代替 毕竟,该方法是将点()替换为()。 有人可以解释一下吗? 问题答案: 使用正则表达式替换字符时,您可以使用反向引用,例如使用匹配项中的分组替换。 但是,这意味着反斜杠是一个特殊字符,因此,如果您实际上想使用反斜杠,则必须对其进行转义。 这意味着在Java字符串中使用它时实际上需要对其进行两