class Maimailog::Crawler::History

プレイ履歴を取得するクラス

Constants

DEFAULT_SLEEP_DURATION

取得間隔の初期値

Attributes

sleep_duration[W]

Public Class Methods

new() click to toggle source
Calls superclass method Maimailog::Crawler::Base::new
# File lib/maimailog/crawler/history.rb, line 65
def initialize
  super
  @sleep_duration = DEFAULT_SLEEP_DURATION
end

Public Instance Methods

fetch(page_num = 0) { |data| ... } click to toggle source

プレイ履歴ページからデータを取得して返す 事前に login を済ませておく必要がある

# File lib/maimailog/crawler/history.rb, line 72
def fetch(page_num = 0)
  page = @agent.page
  raise 'require login.' if page.nil?

  if page.uri.to_s[/home\.html/]
    page = page.link_with(text: /[ ]+データ\z/).click
  end
  page = @agent.get("https://maimai-net.com/maimai-mobile/results.html?p=#{page_num}&#{page.uri.query[/sid=[\w]+/]}")

  links = page.search('//div[@id="accordion"]/ul/li//a')
  raise DataNotFoundError.new('maimai play data not found') if links.size == 0
  links.each do |elm|
    data = convert_data(@agent.get(elm[:href]))
    sleep(@sleep_duration)
    yield data
  end
end
fetch_all(&block) click to toggle source

プレイ履歴を最初から最後まで順番に取得していく

# File lib/maimailog/crawler/history.rb, line 91
def fetch_all(&block)
  0.upto(9999) do |page_num|
    begin
      fetch(page_num, &block)
    rescue DataNotFoundError
      break
    end
  end
end