В красивом супе я знаю, что вы можете легко найти теги под другими тегами, используя селекторы CSS, т.е. если у меня есть следующий манекен xml:
<a>
<b>
<c>textabc1</c>
</b>
<b>
<c>textabc2</c>
</b>
<c>
<c>textacc</c>
</c>
</a>
после создания супа, предположим, что я Я хотел бы найти все теги c ниже b под a (a-> b -> c). Я бы просто запустил следующую команду:
soup.select('a > b > c')
, которая возвращает меня:
[<c>textabc1</c>, <c>textabc2</c>]
Есть ли простой способ сделать это без использования селекторов CSS?
Я провожу день, пытаясь найти простой способ сделать это с помощью «более стандартных» методов красивого супа. В приведенном мною примере есть 3 уровня отступа тега, но очень важно отметить, что я не смогу знать ни xml, ни теги, ни уровень их отступа до времени выполнения (все будет передано в качестве параметров в скрипт ), поэтому мне может понадобиться найти теги от 1 до n уровней отступа (если бы я заранее знал, что мне нужно искать не более 3 уровней отступа, я мог бы, вероятно, использовать 3 цикла с отступом и комбинацию методов findAll / findChildren Я думал о каком-то рекурсивном методе, но логика c кажется сложной.
Заранее спасибо.