なんか他の用途にも使えそうなのでメモ。
とりあえず各地域の店舗数を全部足し合わせたい。ページのソースを確認してnokogiriで抜き出せそうな要素を探してみると<span>
で抜くのが簡単そう。
require 'open-uri'
require 'nokogiri'
URL = "http://pkg.navitime.co.jp/matsuyafoods/area/list"
doc = Nokogiri::HTML(open(URL), nil, 'utf-8')
puts doc.css("span")
これでこんな感じ。
<span><a href="//pkg.navitime.co.jp/matsuyafoods/" onclick="gaTrackEvent(document.title, 'パン屑での遷移/パン屑リスト', '検索トップ');">検索トップ</a></span>
<span>検索結果</span>
<span>(42 件)</span>
<span>(4 件)</span>
<span>(12 件)</span>
<span>(3 件)</span>
<span>(4 件)</span>
<span>(99 件)</span>
<span>(5 件)</span>
<span>(2 件)</span>
<span>(112 件)</span>
<span>(17 件)</span>
<span>(6 件)</span>
<span>(11 件)</span>
<span>(100 件)</span>
<span>(4 件)</span>
<span>(14 件)</span>
<span>(62 件)</span>
<span>(382 件)</span>
<span>(1 件)</span>
<span>(6 件)</span>
<span>(4 件)</span>
<span>(12 件)</span>
<span>(7 件)</span>
<span>(9 件)</span>
<span>(40 件)</span>
<span>(9 件)</span>
<span>(2 件)</span>
<span>(16 件)</span>
<span>(7 件)</span>
<span>(14 件)</span>
<span>(7 件)</span>
<span>(12 件)</span>
<span>(3 件)</span>
<span>(5 件)</span>
<span>(8 件)</span>
<span>(5 件)</span>
これで数字以外を取り除いて足し合わせれば完了。
require 'open-uri'
require 'nokogiri'
URL = "http://pkg.navitime.co.jp/matsuyafoods/area/list"
doc = Nokogiri::HTML(open(URL), nil, 'utf-8')
sum = 0
doc.css("span").each do |row|
sum += row.text.gsub(/[^0-9]/,"").to_i
end
p sum
出力結果
1046