Class: WWFinder::Scraper
- Inherits:
-
Object
- Object
- WWFinder::Scraper
- Defined in:
- lib/ww_finder/scraper.rb
Class Method Summary collapse
- .extract_cities(country, country_data) ⇒ Object
- .extract_countries(continent, cont_data) ⇒ Object
- .scrape_building_details(building) ⇒ Object
- .scrape_buildings_for(city) ⇒ Object
- .scrape_continents_and_countries ⇒ Object
Class Method Details
.extract_cities(country, country_data) ⇒ Object
21 22 23 24 25 26 27 28 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 |
# 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) ⇒ Object
41 42 43 44 |
# 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) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
2 3 4 5 6 7 8 9 10 |
# 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 |