class SoftwareBinder::Scraper
Public Class Methods
scrape_categories()
click to toggle source
# File lib/software_binder/scraper.rb, line 3 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
scrape_softwares(category)
click to toggle source
# File lib/software_binder/scraper.rb, line 13 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