[1] 授業単元:ruby 特別演習
[2] 問題文(含コード&リンク):()
1、「食べログ」東京の東京都市区町村一覧のページ(
http://r.tabelog.com/tokyo/citylst/)にアクセス。
2、区名を指定してそのリンクをクリック
3、表示された20件のページにアクセスし、「店名」、「ジャンル」、「TEL」、「住所」、「評価」、「最寄駅名」、「営業時間」、「定休日」、「平均利用金額」、「用途」の情報を取得する。
4、次のページがあれば次のページに行き、3を行う。
5、csvファイルに出力。
6、ハッキングと間違われないようにランダムアクセスにする。(食べログ運営者にこのようにするようにと指定を受けた。)
*「食べログ」運営者から公開情報の利用許可を頂いております。
[3] 環境
[3.1] OS: Windows vista
[3.2] バージョン:Ruby 1.8.6
[3.3] 言語: Ruby
[4] 期限: 1週間後
[5] その他の制限: なし
個別のページに行ってからのプログラムから書き始めましたが途中から手詰まり状態です。。
書いたところまで載せておきます。
よろしくお願いします。
require 'rubygems'
require 'mechanize'
require 'kconv'
agent = Mechanize.new
agent.get('
http://r.tabelog.com/tokyo/A1310/A131003/13046855/')
#店名
print '店名:'
name = agent.page.at('span[@property="v:name"]')
puts name.inner_text
#ジャンル
print 'ジャンル:'
category = agent.page.at('span[@property="v:category"]')
puts category.inner_text
#TEL
print 'TEL:'
tel = agent.page.at('strong[@property="v:tel"]')
puts tel.inner_text
#住所
print '住所:'
address = agent.page.at('p[@rel="v:addr"]')
puts address.inner_text
#評価
print '評価:'
value = agent.page.at('span[@property="v:average"]')
puts value.inner_text
#交通手段
puts '交通手段:'
agent.page.search('div[@class="parent"]').each do |way|
#agent.page.search('p').each do |way|
#puts elem.inner_text
puts way.inner_text
end
#営業時間
puts '営業時間:'
#tel = agent.page.at('p')
#puts tel.inner_text
#定休日
puts '定休日:'
#agent.page.search('p').each do |day|
#agent.page.search('p').each do |way|
#puts elem.inner_text
#puts day.inner_text
#end
#tel = agent.page.at('p')[5]
#puts tel.inner_text
#平均利用金額
print '平均利用金額:'
price = agent.page.at('a[@property="v:pricerange"]')
puts price.inner_text
#用途
puts '用途:'
#use = agent.page.at('p[@class="ex"]/p')
#puts use.inner_text