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

2024-03-29 11:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个(未)排序的列表,我必须检查是否正在使用特殊的HTML箭头(并用乳胶箭头替换它们)。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。 如何检查中是否存在(&;_;)“→”元素文本?你知道吗


Tags: infalse列表stringif排序myhtml
2条回答

…如果要替换字符,请按以下方式导入“re”:

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

您需要搜索的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

相关问题 更多 >