class Aemet::Crawler

Attributes

aemet_id[RW]
city[RW]

Public Class Methods

new(search) click to toggle source
# File lib/aemet/crawler.rb, line 16
def initialize(search)
  @search = CGI.escape(search.parameterize(" "))
  search_city
end

Private Instance Methods

search_city() click to toggle source
# File lib/aemet/crawler.rb, line 23
def search_city
  city_pattern = ".resultados_busqueda li a:contains('Predicción por Municipios')"

  search_results = Nokogiri::HTML(HTTParty.get(search_url)).search(city_pattern)

  first_result = search_results.first

  if first_result
    first_result[:href] =~ /-id(.*)\Z/

    self.aemet_id = $1
    self.city = City.new(aemet_id)
  else
    raise "Not found"
  end
end
search_url() click to toggle source
# File lib/aemet/crawler.rb, line 40
def search_url
  "#{BASE_URL}/es/buscador?modo=and&orden=n&tipo=sta&str=#{search}"
end