在 lxml.html 个元素的文本中搜索特殊的 HTML 个字符
Search for special HTML characters in text of lxml.html elements
给定一个(未)排序的列表,我必须检查是否使用了特殊的 HTML 箭头(并将它们替换为 Latex 箭头)。 lxml.html 是一项要求。
我一直在修修补补,但后来无法通过以下内容:
import lxml.html
my_string = "<li>I have a dream → Hello!</li>"
elem = lxml.html.fromstring(my_string)
if "→" in my_string: # True
print("foo")
if "→" in elem.text: # False
print("bar")
我无法理解为什么第二个 if 条件的计算结果为 False。
如何检查 elem.text 中是否存在 (→)“→”?
您需要搜索 →
:
的 unicode 表示
>>> s = u"→"
>>> s
u'\u2192'
>>> import lxml.html
>>>
>>> my_string = "<li>I have a dream → Hello!</li>"
>>> elem = lxml.html.fromstring(my_string)
>>>
>>> if u'\u2192' in elem.text:
... print("bar")
...
bar
...如果您要替换字符,请像这样导入 "re":
import re
re.sub(u'\u2192', '→', my_string)
给定一个(未)排序的列表,我必须检查是否使用了特殊的 HTML 箭头(并将它们替换为 Latex 箭头)。 lxml.html 是一项要求。
我一直在修修补补,但后来无法通过以下内容:
import lxml.html
my_string = "<li>I have a dream → Hello!</li>"
elem = lxml.html.fromstring(my_string)
if "→" in my_string: # True
print("foo")
if "→" in elem.text: # False
print("bar")
我无法理解为什么第二个 if 条件的计算结果为 False。 如何检查 elem.text 中是否存在 (→)“→”?
您需要搜索 →
:
>>> s = u"→"
>>> s
u'\u2192'
>>> import lxml.html
>>>
>>> my_string = "<li>I have a dream → Hello!</li>"
>>> elem = lxml.html.fromstring(my_string)
>>>
>>> if u'\u2192' in elem.text:
... print("bar")
...
bar
...如果您要替换字符,请像这样导入 "re":
import re
re.sub(u'\u2192', '→', my_string)