require 'net/http' require 'nokogiri' class Fetcher BASE_URL = 'http://board.vivalavinyl.com' def initialize(cookie:) @cookie = cookie end def page(page_number) authenticated_request("/thread/list/#{page_number}") end def thread(thread) authenticated_request("/thread/view/#{thread[:remote_id]}&ajax=true") end private def authenticated_request(path) uri = URI("#{BASE_URL}#{path}") http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri) request['cookie'] = @cookie response = http.request(request) Nokogiri.HTML(response.body) end end