Module: Scrapers::AllRecipes
- Defined in:
- lib/scrapers/allrecipes.rb
Class Method Summary collapse
- .scrape(url) ⇒ Object
- .scrape_directions(page) ⇒ Object
- .scrape_ingredients(page) ⇒ Object
- .scrape_photo(page) ⇒ Object
Class Method Details
.scrape(url) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/scrapers/allrecipes.rb', line 8 def self.scrape(url) results = Hash.new Scrapers.agent.get(url).tap do |page| results[:url] = page.uri.to_s results[:title] = page.title.strip results[:ingredients] = scrape_ingredients(page) results[:directions] = scrape_directions(page) results[:photo] = scrape_photo(page) end results end |
.scrape_directions(page) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/scrapers/allrecipes.rb', line 33 def self.scrape_directions(page) page. search("div.directLeft").first. search("li"). map do |i| i.text.gsub(/[[:space:]]+/,' ').sub(/^/,'# ') end end |
.scrape_ingredients(page) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/scrapers/allrecipes.rb', line 24 def self.scrape_ingredients(page) page. search("ul.ingredient-wrap"). search(".//li"). map do |i| i.text.gsub(/[[:space:]]+/,' ').sub(/^/,'*') end end |
.scrape_photo(page) ⇒ Object
42 43 44 45 |
# File 'lib/scrapers/allrecipes.rb', line 42 def self.scrape_photo(page) photo = page.search("img#imgPhoto").first Hash[photo.attributes.map{|k,v| [k,v.value]}] end |