当前位置: 首页 > 面试题库 >

用Python字符串解码HTML实体?

慎志国
2023-03-14
问题内容

我正在使用Beautiful Soup 3解析一些HTML,但是它包含HTML实体,Beautiful Soup 3不会自动为我解码:

>>> from BeautifulSoup import BeautifulSoup

>>> soup = BeautifulSoup("<p>&pound;682m</p>")
>>> text = soup.find("p").string

>>> print text
&pound;682m

如何解码HTML实体text以获得"£682m"而不是"&pound;682m"


问题答案:

Python 3.4以上

用途html.unescape()

import html
print(html.unescape('&pound;682m'))

FYI
html.parser.HTMLParser.unescape已弃用,并且应该在3.5中删除,尽管它是错误地保留的。它将很快从语言中删除。

Python 2.6-3.3

您可以HTMLParser.unescape()从标准库中使用:

  • 对于python 2.6-2.7 HTMLParser
  • 对于Python 3 html.parser

    try:
    … # Python 2.6-2.7
    … from HTMLParser import HTMLParser
    … except ImportError:
    … # Python 3
    … from html.parser import HTMLParser

    h = HTMLParser()
    print(h.unescape(‘£682m’))
    £682m

您还可以使用six兼容性库来简化导入:

>>> from six.moves.html_parser import HTMLParser
>>> h = HTMLParser()
>>> print(h.unescape('&pound;682m'))
£682m


 类似资料:
  • 问题内容: 我正在使用Beautiful Soup 3解析一些HTML,但是它包含HTML实体,Beautiful Soup 3不会自动为我解码: 如何解码HTML实体text以获得而不是。 问题答案: Python 3.4以上 用途: FYI html.parser.HTMLParser.unescape已弃用,并且应该在3.5中删除,尽管它是错误地保留的。它将很快从语言中删除。 Python

  • 问题内容: 我正在使用Beautiful Soup 3解析一些HTML,但是它包含HTML实体,Beautiful Soup 3不会自动为我解码: 如何解码HTML实体以获得而不是。 问题答案: Python 3.4以上用途 FYI 已过时,并且应该在3.5中删除,尽管它是错误地遗忘的。它将很快从语言中删除。 Python 2.6-3.3 您可以HTMLParser.unescape()从标准库中

  • 问题内容: 如何从以下位置解码我的html字符串: 至 在Swift 3中? 问题答案: 在替换符号时,您真的需要保留标签吗?Leo Dabus在“ 将Unicode符号或其XML / HTML实体转换为Swift中的Unicode数字”中提出了一种技术,该符号转换包括通过属性字符串来回转换符号。 在Swift 4中: 如果要使用属性字符串(例如,用于中) 这也将转换为斜体。 如果您只想转换HTM

  • 问题内容: 我有一些我想解码的代码,但是如果正在使用任何代码页,猜测代码页的运气就不会很幸运。任何帮助将非常感激。 这是代码: 问题答案: 需要注意的是,如指出的评论,如果你只是想看到生成的脚本可以更换第二用,例如从那么回事: 至: 并运行结果。如果你想了解多一点关于 如何 它的工作原理,见下图。 您有两个输入,一个输入只是用管道分隔的数据(),另一个是基于该数据的以base 64()编码的程序的

  • 问题内容: 我正在尝试从此处NYTimes.com解码HTML条目,但无法弄清楚自己在做什么错。 举个例子: 我尝试了BeautifulSoup,decode(’iso-8859-1’)和django.utils.encoding的smart_str,但没有成功。 问题答案: 尝试这个:

  • 问题内容: 我搜索了一个解决方案,但没有任何意义,所以这是我的问题: 我想解析一个包含HTML文本的字符串。我想用JavaScript做。 我尝试了这个库,但似乎它解析了当前页面的HTML,而不是字符串。因为当我尝试下面的代码时,它更改了页面的标题: 我的目标是从读取的HTML外部页面中提取链接,就像读取字符串一样。 您知道执行此操作的API吗? 问题答案: 创建一个虚拟DOM元素并将字符串添加到