lib/smartphone_finder/scraper.rb in smartphone_finder-cli-1.0.7 vs lib/smartphone_finder/scraper.rb in smartphone_finder-cli-1.1.0
- old
+ new
@@ -1,54 +1,55 @@
-class SmartphoneFinder::Scraper
- DOMAIN="http://gsmarena.com/"
-
-
- def self.get_brands
- html= open(DOMAIN)
- scrapped=Nokogiri::HTML(html)
- scrapped.css(".brandmenu-v2 ul li a").each do |e|
-
- SmartphoneFinder::Brand.new(e.text ,e.attribute("href").value)
-
- end
- end
- def self.get_devices_by_brand(brand)
- url=brand.url
- html= open(DOMAIN+url)
- scrapped=Nokogiri::HTML(html)
- scrapped.css(".makers ul li a").each do |a|
- device=SmartphoneFinder::Device.new(a.css("span").text,a.attribute("href").value,brand)
- brand.add_device(device)
- end
- end
- def self.get_device_spec(device)
- spec_table=""
- url=device.url
- html= open(DOMAIN+url)
- scrapped=Nokogiri::HTML(html)
- scrapped.css("#specs-list table").each do |table|
- spec_table=spec_table + table.css("th").text + ":\n"
- table.css("tr").each do |tr|
- spec_table=spec_table + " " + tr.css(".ttl a").text + " - " + tr.css(".nfo").text + "\n"
- end
- spec_table=spec_table + "--------------------------------------------------------------\n"
- end
- device.specifications= SmartphoneFinder::Specifications.new(device,spec_table)
- end
- def self.get_by_keyword(keyword)
- self.get_brands
- search_results=[]
- html = open(DOMAIN+"results.php3?sQuickSearch=yes&sName="+keyword)
- scrapped = Nokogiri::HTML(html)
- scrapped.css("div.makers ul a").each do |a|
- device_name_no_php=a.attribute("href").value.split("-")
- device_name_collector=device_name_no_php[0].split("_");
- brand=SmartphoneFinder::Brand.find_by_name(device_name_collector[0])
- device_name_collector.shift
- device_name=device_name_collector.join(" ")
- device=SmartphoneFinder::Device.new(device_name,a.attribute("href").value,brand)
- brand.add_device(device)
- search_results.push(brand.name + ": " +device_name)
- end
- search_results
- end
+require 'open-uri'
+class SmartphoneFinder::Scraper
+ DOMAIN="http://gsmarena.com/"
+
+
+ def self.get_brands
+ html= URI.open(DOMAIN)
+ scrapped=Nokogiri::HTML(html)
+ scrapped.css(".brandmenu-v2 ul li a").each do |e|
+
+ SmartphoneFinder::Brand.new(e.text ,e.attribute("href").value)
+
+ end
+ end
+ def self.get_devices_by_brand(brand)
+ url=brand.url
+ html= URI.open(DOMAIN+url)
+ scrapped=Nokogiri::HTML(html)
+ scrapped.css(".makers ul li a").each do |a|
+ device=SmartphoneFinder::Device.new(a.css("span").text,a.attribute("href").value,brand)
+ brand.add_device(device)
+ end
+ end
+ def self.get_device_spec(device)
+ spec_table=""
+ url=device.url
+ html= URI.open(DOMAIN+url)
+ scrapped=Nokogiri::HTML(html)
+ scrapped.css("#specs-list table").each do |table|
+ spec_table=spec_table + table.css("th").text + ":\n"
+ table.css("tr").each do |tr|
+ spec_table=spec_table + " " + tr.css(".ttl a").text + " - " + tr.css(".nfo").text + "\n"
+ end
+ spec_table=spec_table + "--------------------------------------------------------------\n"
+ end
+ device.specifications= SmartphoneFinder::Specifications.new(device,spec_table)
+ end
+ def self.get_by_keyword(keyword)
+ self.get_brands
+ search_results=[]
+ html = URI.open(DOMAIN+"results.php3?sQuickSearch=yes&sName="+keyword)
+ scrapped = Nokogiri::HTML(html)
+ scrapped.css("div.makers ul a").each do |a|
+ device_name_no_php=a.attribute("href").value.split("-")
+ device_name_collector=device_name_no_php[0].split("_");
+ brand=SmartphoneFinder::Brand.find_by_name(device_name_collector[0])
+ device_name_collector.shift
+ device_name=device_name_collector.join(" ")
+ device=SmartphoneFinder::Device.new(device_name,a.attribute("href").value,brand)
+ brand.add_device(device)
+ search_results.push(brand.name + ": " +device_name)
+ end
+ search_results
+ end
end
\ No newline at end of file