【问题标题】:Search for special HTML characters in text of lxml.html elements在 lxml.html 元素的文本中搜索特殊的 HTML 字符
【发布时间】:2015-03-17 00:35:41
【问题描述】:

给定一个(无)有序列表,我必须检查是否使用了特殊的 HTML 箭头(并用 Latex 箭头替换它们)。 lxml.html 是必需的。

我正在修补,但后来我无法超越以下内容:

import lxml.html

my_string = "<li>I have a dream &#8594; Hello!</li>"
elem = lxml.html.fromstring(my_string)

if "&#8594;" in my_string:    # True
    print("foo")

if "&#8594;" in elem.text:    # False
    print("bar")

我无法理解为什么第二个 if 条件的计算结果为 False。 如何检查 (& #8594;) "→" 是否存在于 elem.text 中?

【问题讨论】:

    标签: python lxml.html


    【解决方案1】:

    您需要搜索 的Unicode 表示:

    >>> s = u"→"
    >>> s
    u'\u2192'
    
    >>> import lxml.html
    >>> 
    >>> my_string = "<li>I have a dream &#8594; Hello!</li>"
    >>> elem = lxml.html.fromstring(my_string)
    >>> 
    >>> if u'\u2192' in elem.text:
    ...     print("bar")
    ... 
    bar
    

    【讨论】:

    【解决方案2】:

    ...如果您要替换字符,请像这样导入“re”:

    import re
    re.sub(u'\u2192', '&rarr;', my_string)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-12
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2016-03-11
      • 2018-08-16
      相关资源
      最近更新 更多