URLとXPath指定で良心てきにぶっこ抜きを行うexthtml.phpのいま

exthtml.pl*1のばったもんexthtml.phpですが、最近でもちょくちょく手を加えています。
http://diggin.googlecode.com/svn/trunk/bin/exthtml.php
(ZF1.8のZend_Loader_Autoloaderにもいちおう対応)


本家との違いは、

  • 引数 -v で取得型指定(@hrefとかDISPとか。指定しない場合はTEXT)
  • キャッシュ(一意なURLに対して引数-hでキャッシュフォルダ指定があったときのみ)
  • nextLinkはwedataから自動取得機能
  • 引数-f s/hoge/bar/でフィルタ機能

ってところです。


今はライブラリ側のtrunkからdeleteしてますが、ZF-6040に対するラッパークラス(Diggin_Http_Response)を用意することにより、fc2でも安心してスクレイプできます。

alias extphp="/usr/bin/php $HOME/bin/exthtml.php -a Mozilla -c $HOME/.mozilla/firefox/hoge.default -h $HOME/tmp/"

みたいな感じでエイリアスつくれば良いんじゃないかな?

以下、簡単な使い方(上の感じでエイリアス作ったばあい)

ニコ動の再生数を取得して表示*2
extphp -x 'id("PAGEFOOTER")//strong[2]' http://www.nicovideo.jp    
サムネイルではないグラビア画像を頂く
extphp -x '//a[@target="photo"]//img' -v @src -f s/s000/000/ http://www.b-idol.com/read.cgi/bbs/1217330732/ | xargs wget
30ページ、ページャしながら画像取得
extphp -x '//div[@class="photo_main_left"]//img' -v @src http://www.ota-suke.jp/photo/22226/57085 -d 30 | xargs wget

いまさらxargsの便利さを痛感しているこのごろです。。