Я знаю, что на этот вопрос были похожие вопросы, но, поскольку они не решили проблему, пожалуйста, объясните мне, почему я перехожу к этой проблеме еще раз.
Вот моя строка:
normal = """
<p>
<b>
<a href='link1'> Forget me </a>
</b> I need this one <br>
<b>
<a href='link2'> Forget me too </a>
</b> Forget me not <i>even when</i> you go to sleep <br>
<b> <a href='link3'> Forget me three </a>
</b> Foremost on your mind <br>
</p>
"""
Я начинаю с:
target = lxml.html.fromstring(normal)
tree_struct = etree.ElementTree(target)
Теперь мне нужно игнорировать все, что связано с тегом <a>
. Но если я запускаю этот код:
for e in target.iter():
item = target.xpath(tree_struct.getpath(e))
if len(item)>0:
print(item[0].text)
Я ничего не получаю; с другой стороны, если я изменю инструкцию print
на:
print(item[0].text_content())
Я получаю этот вывод:
Forget me
I need this one
Forget me too
Forget me not
even when
you go to sleep
Forget me three
Foremost on your mind
Пока мой желаемый результат:
I need this one
Forget me not
even when
you go to sleep
Foremost on your mind
Помимо неправильного вывода, он также неэлегатный. Поэтому я, должно быть, упускаю что-то очевидное, хотя не могу понять, что.