Python 在lxml.HTML元素的文本中搜索特殊的HTML字符

Python 在lxml.HTML元素的文本中搜索特殊的HTML字符,python,lxml.html,Python,Lxml.html,给定一个(未)排序的列表,我必须检查是否正在使用特殊的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: # Tr

给定一个(未)排序的列表,我必须检查是否正在使用特殊的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")
import lxml.html
my_string=“
  • 我有一个梦想→;你好!
  • ” elem=lxml.html.fromstring(我的字符串) 如果我的字符串中有“→;”,则为#True 打印(“foo”) 如果元素文本中的“→;”为假: 打印(“条”)
    我无法理解为什么第二个if条件的计算结果为False。
    我如何检查(→;)”→" 是否存在于元素文本中?

    您需要搜索

    >>> 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
    
    >s=u”→"
    >>>
    u'\u2192'
    >>>导入lxml.html
    >>> 
    >>>我的字符串=“
  • 我有一个梦想→;你好!” >>>elem=lxml.html.fromstring(我的字符串) >>> >>>如果elem.text中的u'\u2192': …打印(“条”) ... 酒吧
  • …如果要替换字符,请按如下方式导入“re”:

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

    谢谢!我发现了这个: