嫁が小説を出した。電子書籍サイトで配信され、そのランキングをたまに眺めるようになった。
AppAnnieをtableauで眺めるなど、スマートフォンアプリのランキングなどの推移を気軽に把握できるような感じで、この電子書籍のランキングも、自動取得してグラフで眺められたら知見になると思い、ツールを作った。
↑ランキングのグラフ表示はExcelのピボットチャートを利用し、毎日のランキングデータの取得はrubyで行う。
rubyのプログラミング。
open-uriとNokogiriで、ランキングのHTMLをスクレイピング。
doc = Nokogiri::HTML.parse(open(uri), nil, "UTF-8")
doc.xpath('//div[@class="ranking_area"]').each do |node|
rank = node.xpath('dl/dt[@class="hidden"]')
.text.scan(/\d+/).first.to_i
# ...
end
Excelのシートの最後の行以降に追加していく。
lastrow = worksheet.Cells
.SpecialCells(ExcelConst::XlCellTypeLastCell).Row
range = worksheet.Cells.Range("A#{lastrow + 1}")
このツールを、Windowsのタスクスケジューラに、毎日行うタスクとして登録しておく。これにて自動でランキングデータを取得し、Excelでいつでも閲覧できるようになった。
GitHubにあげておいた。