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