Есть меню сайта в html - сделано через вложенные списки:
<ul>
<li><a href="cat">Cat</a></li>
<li><a href="cat2">Cat2</a>
<ul>
<li><a href="subcat">Subcat</a></li>
<li><a href="subcat2">Subcat2</a></li>
</ul>
</li>
<li><a href="cat3">Cat3</a></li>
</ul>
Уровень вложенности везде разный (максимальный - 3, но желательно этого не предполагать)
Это меню нужно превратить в таблицу:
"Cat" url
"Cat2" url
"Cat2" "Subcat" url
и т.д.
То есть нужно взять и обойти рекурсивно дерево.
Какими библиотеками пользоваться (использую python3)? Как обойти дерево рекурсивно, не зная глубины?
Как вариант можно использовать библиотеку BeautifulSoup.
Там у объекта супа есть свойство .descendants, пример смотри тут.
И уже в самом цикле ты делаешь соответствующие проверки, которые тебе нужны, а так же создаешь нужную структуру на выход.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей