XULRunnerを使ったWebページキャプチャーの自動化

マイコミジャーナルのFirefoxで自動的にスクリーンキャプチャをとる方法という記事で、XULRunnerを使ってWebページのキャプチャを自動的に取得する方法が紹介されていたので、試してみた。

Webページのキャプチャを自動的に取得するにあたって、Mozilla Automated Website Screen Grabberで配布されているScreen Grabberを使用している。

記事を参考にしてmybrowser.jsとmybrowser.xulに少々手を加えて実行。起動はコマンドプロンプト上で

xulrunner -app application.ini -file c:\imgout\site-list.txt

のように入力して実行するだけ。

実行した結果は、以下の通り。

レンダリングは何ら問題ないのだけれど、Yahoo! JAPANではブラウザのユーザーエージェントを判定しようとして失敗しているのだろう、推奨環境が表示されていた。

で、マイコミジャーナルの記事を読み進めていくと、FirefoxにもXULRunnerが実装されているとのことなので、同様に試してみた。

起動はXULRunnerの時と同様に、コマンドプロンプト上で

firefox -app application.ini -file c:\imgout\site-list.txt

のように入力して実行するだけ。

実行した結果は、以下の通り。

今度はきちんとブラウザのユーザーエージェントが判定されているようで、通常の表示となっていることがわかる。

私が以前作成したWebキャプチャーとは異なり、Flashなどのコンテンツもキャプチャーされている。

このあたりはうらやましい限り(表示はできてるんだけどなぁ……)。

参考

XUL

XULRunner

2010年08月29日(日) 23時30分  

QRコード生成

http://www.code-life.jp/js/qrcode.html

2010年04月13日(火) 18時52分  

Webブラウザからコマンドライン版Webキャプチャーを実行(その2)

昨日の続き。無事、PHPからコマンドライン版Webキャプチャーを起動することができるようになったので、次はクライアント寄りのプログラムの作成。

言語はPHPとJavaScriptを使用。JavaScriptはJQueryも少し使用。

クロスブラウザ対応が面倒なので……。

そうしてできたのが、下のようなもの。

ところどころ手を抜いているけれど、一応動いてます。実際に動いているやつはこちら

対象サイトによってはキャプチャーに失敗することがあるみたい……。

※自宅Webサーバーを停止しているときは動きませんので、あしからず。

2009年12月06日(日) 23時44分  

Adobe AIRのJavaScript実行ソフトのコマンドライン版を作ってみた

先週作成したJavaScript実行ソフトのJavaScript実行機能を、今度はコマンドプロンプトから実行できるようにしてみた。

これもAdobe AIRで作成、開発環境は同じくEclipse + AIR GEARプラグイン。

バッチファイル中で以下のようにプログラムを起動して、あとは引数を元に処理しているだけ。

JSRunService.bat

@adl.exe application.xml -nodebug -- %1 %2

クリックすると、別ウィンドウで動画再生

上の動画は、実際に実行してみた様子。動画ではただ動作させているだけだけど、ちゃんと実行結果をファイルに出力することも可能。

ただし、画面出力そのものをファイルにリダイレクトする場合は、trace()の出力先が標準エラー出力なので、標準エラー出力をリダイレクトする必要がある。

JSRunService file:///D:/Public/Program/JSRunService/test.js file:///D:/Public/Program/JSRunService/output.txt 2> result.txt

2009年09月26日(土) 23時33分  

Adobe AIRでJavaScript実行ソフトを作ってみた2

昨日作成したJavaScript実行ソフトを、少し改造。
JavaScriptからSQLiteのテーブルに格納されている別のプログラムのレコードを抽出できるようにしてみた。

普通のデータの操作やテーブルの操作は、JavaScriptからクエリを発行できるので一応可能だと思うけれど、面倒だったので未確認。

実際に動作している様子はこちら

動画では、個々のプログラム(ピラミッド表示、逆ピラミッド表示)を実行した後、最後にそれらをテーブルから抽出して連続実行するプログラム(下記)を実行している。

var sql = "select code from js where id between :fromid and :toid";
var params = {fromid: 2, toid: 3};

var result = execSQL(sql, params);
var code = "";

for (obj in result) {
  var txt = "";

  for (o in result[obj]) {
    txt += result[obj][o];
  }

  code += txt;
}

eval(code);

2009年09月20日(日) 23時33分  

Adobe AIRでJavaScript実行ソフトを作ってみた

ふと、JavaScriptのソースコードをSQLiteに格納でき、かつ必要な時にそれを呼び出して実行できるソフトがあれば便利かも、と思って作ってみた。

開発環境は、Eclipse + AIR GEARプラグイン。

で、できたのが以下のスクリーンショットのようなもので、JavaScriptで書いた階乗プログラムを実行した状態。

そして実際に動作している様子を動画にしたものがこちら。動画では、最初に階乗プログラムを実行した後、PHPのDTOを生成するプログラムを実行している。

つい書き捨ててしまうけど、本当は何度でも使い回せるようなちょっとしたプログラムをSQLite中にまとめておけるので便利。

2009年09月19日(土) 23時33分  

ECMAScriptの言語環境

JavaScriptの業界地図を読み解くの記事を読む。この1年の間にECMAScript(JavaScript, ActionScript)の言語環境は、かなり改善された模様ですな。記事にも

実行速度が5倍以上高速化される可能性もある

とあったので、本当に高速化されてブラウザ等に実装されたら、いろいろ便利になりそう。

同時に、携帯電話等の簡易ブラウザでもJavaScriptが完全にサポートされれば文句無しなのだけど。

2007年12月24日(月) 23時33分  

ブックマークレットでウィンドウのリサイズと移動

再利用しやすいように、ブログにも。

ウィンドウをリサイズするブックマークレット

ウィンドウを移動するブックマークレット

移動はともかく、リサイズは特定のサイズにしたい場合によく使うよね。

2007年09月09日(日) 23時49分