module Aries::Scraper
Public Class Methods
get(params)
click to toggle source
# File lib/aries/scraper.rb, line 15 def get(params) perform_request do parse_response(RestClient.get(url_for(params))) end end
post(params, form_data = {})
click to toggle source
# File lib/aries/scraper.rb, line 21 def post(params, form_data = {}) perform_request do parse_response(RestClient.post(url_for(params), form_data)) end end
raw(params)
click to toggle source
# File lib/aries/scraper.rb, line 27 def raw(params) perform_request do RestClient.get(url_for(params)) end end
url_for(params = {})
click to toggle source
# File lib/aries/scraper.rb, line 9 def url_for(params = {}) url = URI.parse('https://aries.elluel.net/') url.query = URI.encode_www_form(params) if params url.to_s end
Private Class Methods
parse_response(response_body)
click to toggle source
# File lib/aries/scraper.rb, line 41 def parse_response(response_body) characters = [] table = Nokogiri::HTML(response_body).at('table').search('tr') table.drop(1).each do |tr| cells = tr.search('th', 'td') characters << { id: cells[0].text.to_i, name: cells[1].text, job: cells[2].text.strip, level: cells[3].children[0].text.to_i, paragon: cells[4].children[0].text.to_i, fame: cells[5].text.to_i } end if characters.empty? raise Aries::Exception::NotFoundError, 'No character was found' end characters end
perform_request() { || ... }
click to toggle source
# File lib/aries/scraper.rb, line 35 def perform_request yield rescue RestClient::Exception => e raise Aries::Exception::Scraper, e.message end