Oczywiście prezentowany sktypt jest banalny, jednak można go sobie ładnie rozbudować, niestety strony znanych mi providerów takich jak UPC i innych podobnoych są bardzo słabo zabezpieczone pod wieloma względami i oto mała prezentacja co można zrobić ze stronami „user frendly”, których jest coraz więcej.
#!/usr/local/bin/ruby
require 'rubygems'
require 'curl-multi'
require 'json'
curl = Curl::Multi.new
towns = Array.new
letters = ('a'..'z')
on_success_town = lambda do |body|
puts JSON.parse(body)
end
on_failure = lambda do |ex|
puts 'Failure.'
puts ex
end
letters.each do |letter|
curl.get('http://strefaklienta.upc.pl/cckservices/rfs/city?q='+letter+'&limit=999', on_success_town, on_failure)
curl.select([],[]) while curl.size > 0;
end
require 'rubygems'
require 'curl-multi'
require 'json'
curl = Curl::Multi.new
towns = Array.new
letters = ('a'..'z')
on_success_town = lambda do |body|
puts JSON.parse(body)
end
on_failure = lambda do |ex|
puts 'Failure.'
puts ex
end
letters.each do |letter|
curl.get('http://strefaklienta.upc.pl/cckservices/rfs/city?q='+letter+'&limit=999', on_success_town, on_failure)
curl.select([],[]) while curl.size > 0;
end
W wyniku otrzymamy listę miast w zasięku sieci UPC, oczywiście można pójść kawałek dalej i otrzymać listę ulic, a nawet numery bloków dołożyć do tego googlemaps i w parę minut mamy bardzo dokładną mapkę zasięgu sieci UPC, dane na pozór mało istotne, ale jak się tak głębiej zastanowić to mogą się okazać przydatne.
Kawałek output’u z powyższego sktyptu:
(...) Bukowno k. Olkusza Bydgoszcz Bytom Chęciny Chełm Chorzów Ciechanów Czeladź Czerwionka Leszczyny Częstochowa Dąbrowa Górnicza Dzierżoniów Gdańsk Gdynia Gliwice (...)