Sha256: 96b1e2caf5b1549af97433ab9e66fa39ddbb329f989bd15e042d7f9d0eb75382

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

class SoftwareBinder::Scraper

  def self.scrape_categories
    html = open("https://www.capterra.com/categories")
    doc = Nokogiri::HTML(html)
    doc.css(".browse-group-list li a").each do |element|
      category = SoftwareBinder::Category.new
      category.name = element.text
      category.slug = element.attribute("href").value
    end
  end

  def self.scrape_softwares(category)
    html = open("https://www.capterra.com/#{category.slug}")
    doc = Nokogiri::HTML(html)

    doc.css(".listing").each do |element|
      software = SoftwareBinder::Software.new(category)
      software.name = element.css(".listing-name a").text.strip
      software.description = element.css(".listing-description").text.strip.gsub(/\s{2,}/,' ').gsub(" Learn more about #{software.name}",'')
      software.page_slug = element.css(".listing-description a").attr("href").value

      if !element.css(".reviews").empty?
        software.overall_rating = element.css(".reviews").attr("data-rating").value.split("/")[0]
        software.reviews = element.css(".reviews").attr("data-rating").value.split(" - ")[1]
      else
        software.overall_rating = "0.0"
        software.reviews = 0
      end
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
software_binder-0.1.3 lib/software_binder/scraper.rb
software_binder-0.1.2 lib/software_binder/scraper.rb
software_binder-0.1.1 lib/software_binder/scraper.rb