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

Python-用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('&pound;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实体以获得而不是。 问题答案: Python 3.4以上 用途: FYI 已弃用,并且应该在3.5中删除,尽管它是错误地保留的。它将很快从语言中删除。 Python 2.6-3.3 您可以从标准库中使用: 对于python 2.6-2.

  • 问题内容: 我正在使用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,但没有成功。 问题答案: 尝试这个:

  • 问题内容: 我是python3的新手,来自python2,并且我对unicode基本概念有些困惑。我读了一些不错的文章,使事情变得更加清楚,但是我看到python 3上有2种方法可以处理编码和解码,而且我不确定要使用哪种方法。 因此,Python 3中的想法是,每个字符串都是unicode,并且可以按字节进行编码和存储,或者可以再次解码回unicode字符串。 但是有两种方法可以做到: 会生成,但