class WWFinder::Scraper
Public Class Methods
extract_cities(country, country_data)
click to toggle source
# File lib/ww_finder/scraper.rb, line 21 def self.extract_cities(country, country_data) city_lis = country_data.css("ul.markets-lists__list li") city_lis.each do | city | name = city.css("a").text url = city.css("a").attr("href") WWFinder::City.new(name, url, country) end end
extract_countries(continent, cont_data)
click to toggle source
# File lib/ww_finder/scraper.rb, line 12 def self.extract_countries(continent, cont_data) country_divs = cont_data.css("div.markets-list__country") country_divs.each do | country_div | name = country_div.css("h3").text country = WWFinder::Country.new(name, continent) extract_cities(country, country_div) end end
scrape_building_details(building)
click to toggle source
# File lib/ww_finder/scraper.rb, line 41 def self.scrape_building_details(building) doc = Nokogiri::HTML(open("https://www.wework.com#{building.url}")) building.info = doc.css("div.building-info p.ray-text--body").text end
scrape_buildings_for(city)
click to toggle source
# File lib/ww_finder/scraper.rb, line 30 def self.scrape_buildings_for(city) doc = Nokogiri::HTML(open("https://www.wework.com#{city.url}")) building_cards = doc.css(".available-buildings-container .ray-card") building_cards.each do | building_card | name = building_card.css(".building-card__name").text location = building_card.css(".building-card__address").text url = building_card.attr("href") WWFinder::Building.new(name, location, url, city) end end
scrape_continents_and_countries()
click to toggle source
# File lib/ww_finder/scraper.rb, line 2 def self.scrape_continents_and_countries doc = Nokogiri::HTML(open("https://www.wework.com/en-GB/locations")) continent_divs = doc.css("div.markets-list__continent") continent_divs.each do | cont_div | name = cont_div.css(".continent__label h2").text continent = WWFinder::Continent.new(name) extract_countries(continent, cont_div) end end