/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

rubyでWEBページのスクリーンショットをカジュアルに取る・・・・つもりだったが、ブサイクにしか取れなかったorz

rubyのことを調べていたら、すごく興味を引くWEBページがありました。

qiita.com

このページタイトル。凄くセンスあるわ〜。中身を見てみてみたら本当にカジュアル。このセンス、ものすごく羨ましい。ちょうどスクショも取れるならばやってみたいなと思ったし、簡単に出来るっぽいしやってみました。

まずはrbscreenshotをインストール

$ sudo gem install sbscreenshot

これは書いてあるとおりになってみて特に問題なし。

そしてスクリプト(screen_shot_test.rb)を作成。

require 'rbscreenshot'

RbScreenShot.take 'http://yatta47.hateblo.jp/'

試しにこのブログのSS(スクリーンショット)を取るようにしました。

よし。いざ実行!!

$ ruby screen_shot_test.rb
/var/lib/gems/1.9.1/gems/cliver-0.3.2/lib/cliver/dependency.rb:144:in `raise_not_found!': Could not find an executable ["phantomjs"] on your path. (Cliver::Dependency::NotFound)
        from /var/lib/gems/1.9.1/gems/cliver-0.3.2/lib/cliver/dependency.rb:116:in `detect!'
        from /var/lib/gems/1.9.1/gems/cliver-0.3.2/lib/cliver.rb:24:in `detect!'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/client.rb:36:in `initialize'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/client.rb:14:in `new'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/client.rb:14:in `start'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/driver.rb:42:in `client'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/driver.rb:25:in `browser'
        from /var/lib/gems/1.9.1/gems/poltergeist-1.6.0/lib/capybara/poltergeist/driver.rb:220:in `headers='
        from /var/lib/gems/1.9.1/gems/rbscreenshot-0.0.1/lib/rbscreenshot.rb:24:in `session'
        from /var/lib/gems/1.9.1/gems/rbscreenshot-0.0.1/lib/rbscreenshot.rb:7:in `take'
        from screen_shot_test.rb:3:in `<main>'

おもいっきり失敗したorz全然カジュアルじゃない。

ってことでエラーが出ているので、それを確認。

raise_not_found!': Could not find an executable ["phantomjs"] on your path. (Cliver::Dependency::NotFound)

ふーむ。phantomjsのパスが通っていないと。ってかこれはphantomjsを使っていたんだね。使ってみたいと思っていたもののひとつだからちょうどよかったといえば調度良かった。早速インストールしてみよう。

phantomjsをインストール

ちょっと調べてみたらどうもソースからコンパイルすると時間が凄くかかるという情報もちらほら出てきたので、バイナリをそのまま持ってくることに。

ダウンロードは以下のサイトから。

ariya / phantomjs / Downloads — Bitbucket

自分の環境は

$ uname -a
Linux vagrant-ubuntu-trusty-32.localdomain 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:37:48 UTC 2015 i686 i686 i686 GNU/Linux

i686なので、上記ページのphantomjs-1.9.8-linux-i686.tar.bz2をダウンロード。

ダウンロードして、解凍して、PATHが通っているところへ移動。(/tmpで作業)

$ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-i686.tar.bz2
$ bzip2 -dc /tmp/phantomjs-1.9.8-linux-i686.tar.bz2 | tar xvf -
$ cd phantomjs-1.9.8-linux-i686/bin/
$ ./phantomjs -v
1.9.8
$ sudo mv phantomjs /usr/local/bin/.

一応、バイナリを直接実行して1.9.8というバージョン情報が出てきたので、これでOKだと思う。

これで再度実行してみたら、なんかよくわからないログが沢山つらつらと出ましたが、ちゃんとスクショが取れました。

f:id:yatta47:20150324212605j:plain

カジュアルに取るためにはもっと修行が必要

いや〜。2行のソースを動かすのにえらい時間がかかりました。スクショが取れるようになったからなんかあるのか・・・ってところですが、何もありません。こういうことが出来るのか〜という驚きがメインですかね。

しかし、gemって本当すごいなと毎回思う。もっともっと勉強して色々なことをやっていこう。

色々なブログをみているとこの「楽しいRuby」という本を薦めているから買ってみようかどうか迷ってます。

第4版よりか、第3版の方がいいらしい。Kindle版・・・・あるかな。