Исправьте синтаксис xpath с помощью библиотеки lxml pythons для синтаксического анализа всего текста из произвольных вложенных тегов html. - PullRequest
0 голосов
/ 30 мая 2011

Используя lxml в python, я создал этот синтаксис xpath

htmlPage.xpath("/html/body//a/text()")

Он получает все теги <a> в определенных областях HTML, которые я желаю. Теперь я столкнулся с тем, что теги <a> могут выглядеть так:

<a>This is a sentence with some <italic>italic text</italic>-formatting I want to parse.</a>

xpath возвращает мне список, в котором на один элемент больше, чем я ожидаю. Я проверил это и понял, что он разделяет упомянутый выше тег <a> на два элемента списка вместо одного. Вместо строки

"This is a sentence with some italic text-formatting I want to parse."

Я получаю две строки

"This is a sentence with some" # and
"-formatting I want to parse."

Есть ли способ исправить это?

1 Ответ

2 голосов
/ 30 мая 2011

Я решил свою проблему, сначала получив все <a> -tags

results = htmlPage.xpath("/html/body//a")

, а затем итерируя возвращенный список и используя text_content() для элементов списка

for a_tag in results:
    print a_tag.text_content() # prints bthe whol string: "This is a sentence with some italic text-formatting I want to parse."
...