class CheeseBoard::Scraper
Constants
- BASEPATH
Public Class Methods
scrape_cheese_types()
click to toggle source
# File lib/cheese_board/scraper.rb, line 6 def self.scrape_cheese_types doc = Nokogiri::HTML(open(BASEPATH)) cheese_types = doc.css("div.generic-overview-grid--no-scroll a.generic-card__link") cheese_types.map do |cheese_type| name = cheese_type.text CheeseBoard::CheeseType.new(name) end end
scrape_cheeses(cheese_type)
click to toggle source
# File lib/cheese_board/scraper.rb, line 15 def self.scrape_cheeses(cheese_type) @@cheese_type = cheese_type url = BASEPATH + @@cheese_type.name.gsub(" ","-") + "/" doc = Nokogiri::HTML(open(url)) heads = doc.css("div.cheese-category__inner.row-container h4") cheese_type.char = heads.shift.text heads.each.with_index do |h| name = h.text CheeseBoard::Cheese.new(name, cheese_type) end description_count = @@cheese_type.cheeses.count*2 descriptions = doc.css("div.cheese-category__inner.row-container p") t = descriptions.map {|x| x.text}.last(description_count) c_d = t.select.with_index(1) {|_,i| i.odd?} p_w = t.select.with_index(1) {|_,i| i.even?} @@cheese_type.cheeses.zip(c_d , p_w).each do |cheese,c_des,p_des| cheese.cheese_description = c_des cheese.pair_wine = p_des end end