どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

BeautifulSoup微妙。

会社で利用しているとあるデータの中間フォーマットはXmlです。

たまに「○○みたいなデータがどれくらいあるか調べて欲しい」という依頼があるので、そのときはPythonを使ってパースして調査しています。

先日、同僚の人が「解析の時はBeautifulSoupを使っているよ」という話を聞いたので、試してみたんですが正直微妙でした。

微妙な理由はただ1つで、XPathが使えないことです。XPathじゃなくても代用できるモノがあれば良かったんですがどうやらないようです。例えば「A要素の下にいる全B要素で属性CがDなやつ」としたいときに、XPathなら「.//A//B[@C="D"]」の1行に済むのに、ない場合はひとつづつfindしていなかないといけないのでしんどいです。

BeaifulSoupの場合は、CSSセレクタは使えるので、ギリ「A B」みたいな感じで「A配下のB」みたいなのは取得出来ますが属性の指定までは1行じゃ無理です。

というわけで今日1日試した結果、やっぱりXPathが使えるElementTreeに落ちつきました。ちょっと変わった名前のライブラリで、こういうの使いこなしていたら格好いいなってとか本筋に関係ない理由で使ってみたかったりしたんですが、ちょっと残念です。