13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# 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
|