Enjoy!
Output:
Norway - '13": 2.66GHz': '3-5 abeidsdager'
Taiwan - '17-inch: 2.53GHz': '7 business days'
Taiwan - '13-inch: 2.66GHz': '7 business days'
Taiwan - '15-inch: 2.53GHz': '7 business days'
Taiwan - '15-inch: 2.66GHz': '7 business days'
Finland - '13-inch: 2.66GHz': '3-5 business days'
Hong Kong - '15-inch: 2.53GHz': '2-4 business days'
Portugal - '17 pol.: 2.53GHz': '1 dia útil'
Portugal - '13 pol.: 2.4GHz': '1 dia útil'
Portugal - '13 pol.: 2.66GHz': '1 dia útil'
Portugal - '15 pol.: 2.4GHz': '1 dia útil'
Portugal - '15 pol.: 2.53GHz': '1 dia útil'
Portugal - '15 pol.: 2.66GHz': '1 dia útil'
Indonesia - '17-inch: 2.53GHz': 'Currently Unavailable'
Indonesia - '13-inch: 2.4GHz': 'Currently Unavailable'
Indonesia - '13-inch: 2.66GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.4GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.53GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.66GHz': 'Currently Unavailable'
Denmark - '13-inch: 2.66GHz': '3-5 business days'
Thailand - '15-inch: 2.4GHz': '1-2 business days'
Code:
require 'rubygems'
require 'open-uri'
require 'nokogiri'
require 'cgi'
def fetch_availability(country)
doc = Nokogiri::HTML(open("http://store.apple.com/#{country}/browse/home/shop_mac/family/macbook_pro?mco=MTM3NjU5MzU"))
result = {}
i = 0
doc.css('table.product-table tr.product-model h3').each do |model|
result[i] = model.text
i += 1
end
i = 0
doc.css('span.customer_commit_display').each do |availability|
result[i] = [result[i], availability.text]
i += 1
end
result
end
countries = {"au" => "Australia", "be-nl" => "Belgium", "br" => "Brazil", "ca" => "Canada", "cn" => "China", "dk" => "Denmark",
"de" => "Germany", "es" => "Spain", "fr" => "France", "hk" => "Hong Kong", "id" => "Indonesia", "ie" => "Ireland",
"it" => "Italy", "jp" => "Japan", "lu" => "Luxembourg", "my" => "Malaysia", "mx" => "Mexico", "nl" => "Netherlands",
"nz" => "New Zealand", "no" => "Norway", "ph" => "Philippines", "pt" => "Portugal", "at" => "Austria", "ch-de" => "Switzerland",
"sg" => "Singapore", "kr" => "South Korea", "fi" => "Finland", "se" => "Sweden", "tw" => "Taiwan", "th" => "Thailand",
"us" => "United States of America", "uk" => "United Kingdom", "vn" => "Vietnam"}
countries.each do |code,country|
result = fetch_availability(code)
result.each do |key,value|
unless value[1].include? "24" or value[1].include? "Today"
puts "#{country} - '#{value[0]}': '#{value[1]}'"
end
end
end
Output:
Norway - '13": 2.66GHz': '3-5 abeidsdager'
Taiwan - '17-inch: 2.53GHz': '7 business days'
Taiwan - '13-inch: 2.66GHz': '7 business days'
Taiwan - '15-inch: 2.53GHz': '7 business days'
Taiwan - '15-inch: 2.66GHz': '7 business days'
Finland - '13-inch: 2.66GHz': '3-5 business days'
Hong Kong - '15-inch: 2.53GHz': '2-4 business days'
Portugal - '17 pol.: 2.53GHz': '1 dia útil'
Portugal - '13 pol.: 2.4GHz': '1 dia útil'
Portugal - '13 pol.: 2.66GHz': '1 dia útil'
Portugal - '15 pol.: 2.4GHz': '1 dia útil'
Portugal - '15 pol.: 2.53GHz': '1 dia útil'
Portugal - '15 pol.: 2.66GHz': '1 dia útil'
Indonesia - '17-inch: 2.53GHz': 'Currently Unavailable'
Indonesia - '13-inch: 2.4GHz': 'Currently Unavailable'
Indonesia - '13-inch: 2.66GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.4GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.53GHz': 'Currently Unavailable'
Indonesia - '15-inch: 2.66GHz': 'Currently Unavailable'
Denmark - '13-inch: 2.66GHz': '3-5 business days'
Thailand - '15-inch: 2.4GHz': '1-2 business days'