HTMLの分析を行う際、タグを巡回する必要がありますがそんなとき、lxmlを使うと便利です。
lxmlでは、タグの入れ子関係が壊れたHTMLの修復も自動で行ってくれる機能がありますのでユーザは細かいことを気にする必要はありません。この修復機能のおかげで、入れ子の修復(閉じ括弧がないタグは閉じ括弧を付与)を行ってくれるため、HTMLをツリーとして、つまりDOMツリーとして捉えることができるようになるのです。
DOMツリーだから何やねん!という方は読み飛ばしてもらっていいのですが、ツリーであるおかげで親ノード(親タグ)をたぐったり、兄弟ノード(兄弟タグ)をたぐったりが簡単にできるようになるのですね。lxmlってすばらしい。
木を巡回する手法はいろいろとありますが、今日は深さ優先で巡回する手法をみてみましょう。