読者です 読者をやめる 読者になる 読者になる

Re:Start

いまはディレクターやってます

キャプチャをまとめて取るためにrubyでツール作った話

業務効率化にツール創るのってワクワクしますよね。

さて今回作ったものは、「実行すると指定したページのキャプチャを取ってきてくれるもの」

だったのですが、

ブラウザアプリのawesome的な、キャプチャ取得ツールの代わりになるかもしれないと思って、リライトしました。 ※実際に使っているファイルでは、basic認証とログインも書いています。

使うイメージとしては、はやりのデザインを定期で取りたいときに都度、キャプチャを取るのではなく、URLをjsonにまとめておいて、まとめて取っちゃおうぜ!って感じ。いちおう、日付とネーミングがファイルに付くので、あとは好きなようにしてください。ただし、アニメーションには弱いです。

caputrePage.rb

# encoding: utf-8
require 'json'
require 'watir-webdriver'
require 'open-uri'

class CaturePage
    # for filename
    NOWTIME = Time.now.strftime("%Y%m%d%H%M%S")
    DIR_NAME = "./capture/something/"

  def capture()
    b = Watir::Browser.new :ff
    # open json
    open("something.json","r:UTF-8") do |io|
    # print io.read
    # load json
    json = JSON.parse(io.read)
    json.each do |k|
        k.each do |l,n|
            if l == "url" then
                b.goto n
            elsif l == "title" then
                b.driver.save_screenshot DIR_NAME + NOWTIME + "_" + n + ".png"
            end
        end
    end
  end
  b.close
end
CaturePage.new.capture
end

something.json

[{
    "url": "http://ekubo.jp/",
    "title": "ekubo"
},
{
    "url": "http://noma.today/",
    "title": "noma"
},
{
    "url": "https://theuniversim.com/",
    "title": "theuniversim"
},
{
    "url": "http://www.kazmia.co.jp/",
    "title": "kazmia"
}]

これを実行すると、こんなのができます。

  • 20150906085649_kazmia.png
  • 20150906085649_noma.png
  • 20150906085649_theuniversim.png
  • 20150906085649_ekubo.png

ただ、左側側が少し切れてたり、スクロールするとページが変わっていくタイプには弱いです。。。

できたファイルは、Pinterestに入れておくのもいいかもしれませんね。 www.pinterest.com