lib/scrape_notice.rb in cdc_notices-0.1.1 vs lib/scrape_notice.rb in cdc_notices-0.1.2

- old
+ new

@@ -1,93 +1,93 @@ -require 'open-uri' -require 'nokogiri' -require 'openssl' - -require_relative 'notice.rb' -require_relative 'alert.rb' -require_relative 'watch.rb' -require_relative 'warning.rb' -class Scraper - - attr_accessor :url - - def initialize(url) - @url = url - @notice = Notice.new - - end - - def get_page - html = open(@url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE) - doc = Nokogiri::HTML(html) - - end - - def set_attributes - array_alert = [] - array_watch = [] - array_warning = [] - main_content = self.get_page.css('#contentArea') - - notice_hash = {:alert => main_content.css('#alert'), :watch => main_content.css('#watch'), :warning => main_content.css('#warning')} - - alerts = notice_hash[:alert].collect {|alert| alert.css('li')} - - if alerts[0] != nil - alerts[0].each do |alert| - array_alert << alert - end - end - - - watches = notice_hash[:watch].collect {|watch| watch.css('li')} - if watches[0] != nil - watches[0].each do |watch| - array_watch << watch - end - end - - warnings = notice_hash[:warning].collect {|warning| warning.css('li')} - if warnings[0] != nil - warnings[0].each do |warning| - array_warning << warning - end - end - - array_alert.each do |alert| - new_alert = Alert.new - new_alert.title = alert.css('a:not(.readmore)').text - new_alert.summary = alert.css('span').text - new_alert.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{alert.css('a').attr('href').text}" - - @notice.add_alert(new_alert) - end - - array_watch.each do |watch| - new_watch = Watch.new - new_watch.title = watch.css('a:not(.readmore)').text - new_watch.summary = watch.css('span').text - new_watch.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{watch.css('a').attr('href').text}" - @notice.add_watch(new_watch) - end - - array_warning.each do |warn| - new_warning = Warning.new - new_warning.title = warn.css('a:not(.readmore)').text - new_warning.summary = warn.css('span').text - new_warning.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{warn.css('a').attr('href').text}" - @notice.add_warning(new_warning) - end - - @notice - - - - end - - - - - - - -end +require 'open-uri' +require 'nokogiri' +require 'openssl' + +require_relative 'notice.rb' +require_relative 'alert.rb' +require_relative 'watch.rb' +require_relative 'warning.rb' +class Scraper + + attr_accessor :url + + def initialize(url) + @url = url + @notice = Notice.new + + end + + def get_page + html = open(@url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE) + doc = Nokogiri::HTML(html) + + end + + def set_attributes + array_alert = [] + array_watch = [] + array_warning = [] + main_content = self.get_page.css('#contentArea') + + notice_hash = {:alert => main_content.css('#alert'), :watch => main_content.css('#watch'), :warning => main_content.css('#warning')} + + alerts = notice_hash[:alert].collect {|alert| alert.css('li')} + + if alerts[0] != nil + alerts[0].each do |alert| + array_alert << alert + end + end + + + watches = notice_hash[:watch].collect {|watch| watch.css('li')} + if watches[0] != nil + watches[0].each do |watch| + array_watch << watch + end + end + + warnings = notice_hash[:warning].collect {|warning| warning.css('li')} + if warnings[0] != nil + warnings[0].each do |warning| + array_warning << warning + end + end + + array_alert.each do |alert| + new_alert = Alert.new + new_alert.title = alert.css('a:not(.readmore)').text + new_alert.summary = alert.css('span').text + new_alert.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{alert.css('a').attr('href').text}" + + @notice.add_alert(new_alert) + end + + array_watch.each do |watch| + new_watch = Watch.new + new_watch.title = watch.css('a:not(.readmore)').text + new_watch.summary = watch.css('span').text + new_watch.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{watch.css('a').attr('href').text}" + @notice.add_watch(new_watch) + end + + array_warning.each do |warn| + new_warning = Warning.new + new_warning.title = warn.css('a:not(.readmore)').text + new_warning.summary = warn.css('span').text + new_warning.readmore = "#{@url.gsub(/\/travel\/notices/, "")}#{warn.css('a').attr('href').text}" + @notice.add_warning(new_warning) + end + + @notice + + + + end + + + + + + + +end