24 lines
756 B
Ruby
24 lines
756 B
Ruby
|
require 'watir'
|
||
|
require 'nokogiri'
|
||
|
|
||
|
class LunchScraper
|
||
|
def initialize(date)
|
||
|
@date = date
|
||
|
@url = "https://westerville.nutrislice.com/menu/fouse-elementary/lunch/#{@date.strftime('%Y-%m-%d')}"
|
||
|
end
|
||
|
|
||
|
def today
|
||
|
browser = Watir::Browser.new :chrome, headless: true
|
||
|
browser.goto @url
|
||
|
# browser.wait_until { |b| b.h3(class: ['day-label', 'today']).present? }
|
||
|
browser.wait_until { |b| b.button(text: 'View Menus').present? }
|
||
|
browser.button(text: 'View Menus').click
|
||
|
|
||
|
browser.p(class: 'no-data').wait_while(&:exists?)
|
||
|
browser.wait_until { |b| b.h3(class: ['day-label', 'today']).present? }
|
||
|
|
||
|
page = Nokogiri::HTML(browser.html)
|
||
|
page.css('h3.day-label.today ~ ul.items li a.food-name-inner').map(&:content)
|
||
|
end
|
||
|
end
|