PDFの専門書を取り揃えるGeb スクリプト


it-ebooksという、大量のIT専門書をPDFで紹介しているサイトがあります。
別に古い本と、限らす、新しい本もけっこう紹介しています、1200冊位あります。
なぜこのような素敵なサイトが存続できるか不明な感じもありますが。
サイト規約を見ると、個人の学習に限ってダウンロード可能書いてあるので、
個人のスキルアップのためにここにあるPDFを適当に見繕ってダウンロードしたいと思います。
ただ、このサイトのデザインは、各書籍間のリンクが存在せず、PDFの実体へのリンクは見えないので
wget的なクローラーでは自動では落とせません。
そこで、Gebで自動で落としてみたいと思います。
ディレクトリー構造はシンプルなのでgeb向きなサイトだと思います。


動かし方
今回はfirefoxのブラウザを自動運転することを想定しています。
groovyを動かすコマンドラインから"firefox"が起動できるようにpathを通しておいてください。
gebでライブラリーをダウンロードしています、Proxyが効いていると動かなかったりするので、
会社の中とかでは、動かないことがあるかもしれません。
firefoxの設定でpdfをクリックすると、デフォルトでは、どうするか選択画面のポップアップが出ますが
問い合わせなくファイルを保存するように設定しておきます。このgebコードではポップアップウィンドウは
制御できません。
スクリプトを動かすと一回目はgebのライブラリーをダウンロードするので起動にすごく時間がかかります、
気長に待ちましょう。
しばらくすると firefox自動起動してして、PDFのクリックに対する処理の問い合わせウィンドウが開くので
以降は全て同様にダウンロートするようにチェックボックスをチェックします。
2冊目以降は自動で落ち続けます。
ただしマルチスレッド的な管理はないので、ダウンロード間隔は7分とか、長めにしておきましょう。

コードはこちら

2013/1/25 消しました レギュレーションが変わって "Direct download only" と追記されています。