代码之家  ›  专栏  ›  技术社区  ›  tghw megawac

HTML实体代码到文本[重复]

  •  13
  • tghw megawac  · 技术社区  · 15 年前

    &lt; &amp; )到普通字符串(例如<&)?

    cgi.escape() 将转义字符串(很差),但没有 unescape() .

    4 回复  |  直到 15 年前
        1
  •  45
  •   Stefan Collier    7 年前

    HTMLParser

    (蟒蛇2 Docs )

    >>> import HTMLParser
    >>> h= HTMLParser.HTMLParser()
    >>> h.unescape('alpha &lt; &beta;')
    u'alpha < \u03b2'
    

    (3) Docs )

    >>> import html.parser
    >>> h = html.parser.HTMLParser()
    >>> h.unescape('alpha &lt; &beta;')
    'alpha < \u03b2'
    

    htmlentitydefs 有文档记录,但需要您自己做很多工作。

    如果您只需要XML预定义的实体(lt、gt、amp、quot、apos),那么可以使用minidom来解析它们。如果您只需要预定义的实体,而不需要数字字符引用,您甚至可以使用普通的旧字符串替换来提高速度。

        2
  •  12
  •   tghw megawac    15 年前

    一开始我忘了给它贴标签,但我用的是BeautifulSoup。

    翻阅文档,我发现:

    soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
    

    这正是我所希望的。

        4
  •  1
  •   vartec    15 年前

    htmlentitydefs 单元这是我的旧代码,它起作用了,但我相信有更干净、更具Python风格的方法可以做到:

    e2c = dict(('&%s;'%k,eval("u'\\u%04x'"%v)) for k, v in htmlentitydefs.name2codepoint.items())