私は、ツリーを作成して HTML ファイルとしてインポートできるプログラム FreeMind で作業しています。このツリーのすべての「パス」を取得してリストに入れる必要があります。たとえば、後で各「パス」を個別に操作する必要があります。
たとえば、次のコードから:
<body>
<p>Example</p>
<ul>
<li>
The First List
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</li>
<li>
The Second List
<ul>
<li>4.1</li>
<li>4.2</li>
</ul>
</li>
</ul>
</body>
次の個別のコード ブランチを取得する必要があります。
<body>
<p>Example</p>
<ul>
<li>
The First List
<ul>
<li>1</li>
</ul>
</li>
</ul>
</body>
<body>
<p>Example</p>
<ul>
<li>
The First List
<ul>
<li>2</li>
</ul>
</li>
</ul>
</body>
<body>
<p>Example</p>
<ul>
<li>
The First List
<ul>
<li>3</li>
</ul>
</li>
</ul>
</body>
<body>
<p>Example</p>
<ul>
<li>
The Second List
<ul>
<li>4.1</li>
</ul>
</li>
</ul>
</body>
<body>
<p>Example</p>
<ul>
<li>
The Second List
<ul>
<li>4.2</li>
</ul>
</li>
</ul>
</body>
そのコードを試してみると、「Python オブジェクトの呼び出し中に最大再帰深度を超えました」というエラーが表示されます。
from bs4 import BeautifulSoup
parsed = BeautifulSoup(open("example.html"))
body = parsed.body
def all_nodes(obj):
for node in obj:
print node
all_nodes(node)
print all_nodes(body)
このすべてのもので何をしたいのかを後で説明する必要があると思います。私は FreeMind でテスト ケースを作成しています。たとえば、すべてのテスト ケースで csv テーブルを作成できるツールを作成しようとしています。しかし今のところ、すべてのテスト ケースをテキストとして取得しようとしています。