Рассмотрим следующий html фрагмент
<html>
.
.
.
<div>
<p> Hello </p>
<div>
<b>
Text1
</b>
<p>
This is a huge paragraph text
</p>
.
.
.
</div>
</div>
.
.
.
<div>
<i>
Text2
</i>
</div>
Допустим, мне нужно извлечь все от Text1
до Text2
, включая теги. Используя несколько методов, я смог извлечь теги этих двух, то есть их уникальный идентификатор.
По сути, у меня есть 2 элемента Element.etree, соответствующих двум тегам, которые мне нужны.
Как мне извлечь все, что находится между двумя тегами?
(Одно из возможных решений, которое я могу придумать, - это найти двух общих предков тегов, выполнить iterwalk()
и начать извлечение в Element1 и остановиться на 2. Однако я не совсем уверен, как это будет) Любое решение будет оценено.
Обратите внимание, что я уже нашел два тега, которые мне нужны, и я не ищу решения для найти эти теги (например, используя xpath)
Редактировать: Мой желаемый вывод -
<b>
Text1
</b>
<p>
This is a huge paragraph text
</p>
.
.
.
</div>
</div>
.
.
.
<div>
<i>
Text2
</i>
Обратите внимание, что я не возражаю против начальных тегов 2 <div>
, но не хочу Hello
. То же самое относится и к закрывающим тегам конца. В основном меня интересует промежуточное содержимое.
Редактировать 2: Я извлек элементы Etree, используя сложные условия xpath, что было невозможно с другими альтернативами, такими как bs4, поэтому любое решение с использованием l xml элементы будут оценены:)