Class: InternetNearMe::Scraper
- Inherits:
-
Object
- Object
- InternetNearMe::Scraper
- Defined in:
- lib/internet_near_me/scraper.rb
Constant Summary collapse
- REQUEST_HEADERS =
{ "User-Agent" => "Ruby/#{RUBY_VERSION}", "From" => "internet_near_me", "Referer" => "http://www.ruby-lang.org/" }
Instance Method Summary collapse
Instance Method Details
#scrape_by_zip_code(zip_code) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/internet_near_me/scraper.rb', line 21 def scrape_by_zip_code(zip_code) url = "http://www.yelp.com/search?find_desc=Internet+Cafes&find_loc=#{zip_code}" doc = Nokogiri::HTML(open(url, REQUEST_HEADERS)) internet_cafes = [] doc.css(".search-results-content li.regular-search-result").map do |search_result| internet_cafe = InternetNearMe::InternetCafe.new internet_cafe.name = search_result.css("a.biz-name").text.strip internet_cafe.address = search_result.css("address").inner_html.gsub("<br>", "\n").strip internet_cafe.price = search_result.css(".price-range").text.strip internet_cafe.url = search_result.css("a.biz-name").attribute("href").value internet_cafes << internet_cafe end internet_cafes end |
#scrape_details(internet_cafe) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/internet_near_me/scraper.rb', line 7 def scrape_details(internet_cafe) url = "http://www.yelp.com" + internet_cafe.url doc = Nokogiri::HTML(open(url, REQUEST_HEADERS)) # binding.pry internet_cafe. = doc.css(".rating-info .star-img").attribute("title") .value.gsub("star rating", "stars") internet_cafe.number_of_reviews = doc.css(".rating-info .review-count span").text.strip internet_cafe.hours = doc.css(".hour-range").text internet_cafe.phone = doc.css(".biz-phone").text.strip internet_cafe.website = doc.css(".biz-website a").text.strip internet_cafe end |