class NprStories::Scraper

Constants

BASE_URL

apiKey is not connected to to my account

Public Instance Methods

scrape_programs() click to toggle source

scrape_programs - head over to NPR programs page, scrape data & instantiate new Program objects scrape stories - grabs/creates the stories for a particular programs

# File lib/npr_stories/scraper.rb, line 9
def scrape_programs
  doc = Nokogiri::XML(open('http://api.npr.org/list?id=3004'))
  programs = doc.xpath('*//item')
  programs.each do |program|
    new_program = NprStories::Program.new 
    new_program.program_title = program.search('title').text
    new_program.search_id = program.attributes["id"].value.to_i
    new_program.additional_info = program.search('additionalInfo').text
  end
end
scrape_stories(program) click to toggle source
# File lib/npr_stories/scraper.rb, line 20
def scrape_stories(program) #returns a list of story hashes for the show entered
  api_query = "#{BASE_URL + program.search_id.to_s}"
  doc = Nokogiri::XML(open(api_query))
  @program_stories = doc.xpath('*//story') # @progam_stories is a Nokogiri::XML::NodeSet of stories
  @program_stories.each do |nokogiri_story|
    new_story = NprStories::Story.new
    new_story.set_attributes_from_web(nokogiri_story)
    program.stories << new_story # add new story to program's stories array
  end
  program.stories
end