PhantomJS: 「最小限なheadlessのWebKitベースのJavaScriptツール」 - karasuyamatenguの日記
headless=スクリーンがない=コマンドと考えればいい。要はブラウザから画面と取り除いてJavaScriptによるスクリプティングを可能にしたコマンドツール。逆に言うとDOM+JavaScript+Networkingをコマンドにしたもの。...
http://d.hatena.ne.jp/karasuyamatengu/20110126/1296066287
phantomjs - Project Hosting on Google Codeただちょっと改造したいとか、それだけの為にQt入れたくないよーとか、staticビルドすんのに4時間もかかるのかよ!とかお嘆きの方もいらっしゃると思ったので...
PhantomJS is a minimalistic, headless, WebKit-based, JavaScript-driven tool. It has native support f...
http://code.google.com/p/phantomjs/
phantomjs を webkitgtk+ でうごかしたらいいんじゃね、とおもってやってたけど、コンパイルに必要なモジュールおおすぎてあきらめた
QtWebKitでなく、webkitgtk+で実装してみました。
mattn/specterjs - GitHubほとんどphantomjs互換です。phantomjsのphantomは幽霊って意味だったので、妖怪という意味のspecterを使いspecterjsと名付けました。
SpecterJS is a minimalistic, headless, WebKit-based, JavaScript-driven tool.
https://github.com/mattn/specterjs
ただまだ制限があって、renderで扱えるのはpdfのみです。png出力にはまだ対応出来ていません。これはいずれやります。おそらくcairoとGtkPrintContext使えばいけるかと思います。
次にrenderで使用する際のviewportSizeが正しく機能していません。
それ以外は動くのでphantomjsについているサンプルの殆どが動きます。
ちなみに
if (specter.state.length === 0) {
specter.state = 'mcdonalds';
specter.open('http://www.mcdonalds.co.jp/menu/regular/index.html');
} else {
[].forEach.call(document.querySelectorAll('ul.food-set>li img'),
function(n) { console.log(n.getAttribute('alt')); });
specter.exit();
}
で、マクドナルドのメニュー一覧を出すことも出来ちゃいます!よろしかったら遊んで下さい。