htmlsql
先日書いた JSports Rugby の bot だが何故か動く日と動かない日があるようで不安定だ。
とりあえずそれは置いておいて、今回ページの解析に htmlsql なるものを使ってみた。
jonasjohn.de: htmlSQL - a PHP class to query the web by an SQL like language
何ともユニークで、HTML自体に 'connect' して、div 要素などの中から where 文に一致するものを抽出してくる、という php ライブラリである。SQL やってた人間なら直感的で使い勝手がいいと思うのだけど、3年ほど放置されているらしい。
ちゃんと動くのかいな?と思ったら動きましたよ。class とか id で制限して抜き出したり出来るので便利。ただ、同じ element が入れ子になってると最初に閉じた時点までしか取ってこないし、入れ子の中の要素を抽出できない模様。
<div class="bar">
<div class="foo">
hello, world.
</div>
</div>
みたいになったソースに対して
select * from div where $class == "foo"
とやっても空の array が帰ってきてしまう。ので、$class == "bar" で取ってきた結果の text に string 型で connect しなおして…みたいなことが必要。
後、当然といえば当然なんだけど、UTF-8じゃないと日本語通らないのでそれ以外のソースは一旦エンコードを変える必要があるね。
何か定型のHTMLをちゃちゃっと処理したいときには便利なんじゃないでしょうか。XPath で invalid とか怒られたり、自分でうだうだ正規表現書くよりは。
| 固定リンク
「てっく」カテゴリの記事
- Tampermonkey と jQuery(2015.04.17)
- Yosemite遠隔Update(2015.03.13)
- Google Calendar API v3(2014.11.19)
- IRKit(2014.07.16)
- WiTV(2014.05.19)
この記事へのコメントは終了しました。
コメント