Sha256: bb549e1b3fb19536544c505762a759fb058186710c2dba9e10b0b326cd937b63

Contents?: true

Size: 1.36 KB

Versions: 4

Compression:

Stored size: 1.36 KB

Contents

require 'oga'
require 'open-uri'

module KiwiScraper
  # parse course description from sharecourse web
  class ShareCourse
    URL = 'http://www.sharecourse.net/sharecourse/course/view/courseList'

    def initialize
      get_html
    end

    def get_html
      @document = Oga.parse_html(open(URL))
    end

    def course_name
      @course_name ||= get_course_name
    end

    def course_url
      @course_url ||= get_course_url
    end

    def courses_name_to_url_mapping
      @course_map ||= get_course
    end

    private

    def get_course_name
      result = []
      @document.xpath("//h4[@id='courseName']").each do |course|
        result << course.text
      end
      result
    end

    def get_course_url
      result = []
      @document.xpath('//div[@onclick]').each do |course|
        result << course.attributes[2].value.split("'")[1]
      end
      result
    end

    def get_course
      name = []
      @document.xpath("//h4[@id='courseName']").each do |course|
        name << course.text
      end

      url = []
      @document.xpath('//div[@onclick]').each do |course|
        url << course.attributes[2].value.split("'")[1]
      end

      key = ['course_name', 'course_url']
      result = []
      name.each_index do |index|
        element = Hash[key.zip [name[index], url[index]]]
        result << element
      end

      result
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kiwicourse-0.1.3 lib/coursesdesc/courses.rb
kiwicourse-0.1.2 lib/coursesdesc/courses.rb
kiwicourse-0.1.1 lib/coursesdesc/courses.rb
kiwicourse-0.1.0 lib/coursesdesc/courses.rb