Module: Scrapers::AllRecipes

Defined in:
lib/scrapers/allrecipes.rb

Class Method Summary collapse

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