class Pumi::DataSource::Wikipedia::CambodianDistrictsScraper
def find_geocode_td(district)
def find_geocode_td(district) scraper.page.at_xpath("//td[text()[contains(., '#{district.id}')]]") end
def find_ungegn(district)
def find_ungegn(district) geocode_td = find_geocode_td(district) return if geocode_td.nil? geocode_td.at_xpath("preceding-sibling::td/span[contains(@title, 'Khmer-language romanization')]")&.text end
def find_url(district)
def find_url(district) geocode_td = find_geocode_td(district) return if geocode_td.nil? link = geocode_td.at_xpath("preceding-sibling::td/a[contains(@href, '/wiki/')]") return if link.nil? URI.join(URL, link[:href]).to_s end
def scrape!
def scrape! District.all.each_with_object([]) do |district, result| result << ScraperResult.new( code: district.id, wikipedia: find_url(district), name_ungegn: find_ungegn(district) ) end end
def scraper
def scraper @scraper ||= WebScraper.new(URL) end