Class: Meetups::EventScraper

Inherits:
Object
  • Object
show all
Defined in:
lib/meetups/event-scraper.rb

Class Method Summary collapse

Class Method Details

.scrape_meetupsObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/meetups/event-scraper.rb', line 3

def self.scrape_meetups
  # Scrape WWCNYC meetups page and add events and their details to @events array
  doc = Nokogiri::HTML(open("https://www.meetup.com/WomenWhoCodeNYC/"))
  first_level = doc.css("div#events-list-module ul.event-list li.event-item").to_a
  unless first_level.include?("past")
    first_level.each.with_index do |event, i|
      unless doc.css("div.event-content div.event-desc")[i].text.include?("Place holder")
        event = Meetups::Event.new
        event.name = doc.css("h3.flush--bottom span")[i].text
        event.date = doc.css("li.dateTime span.date")[i].text
        event.time = doc.css("li.dateTime span.time")[i].text
        if doc.css("div.event-content dt.event-venuename")[i].inspect.include?("no-color")
          event.location = doc.css("div.event-content dt.event-venuename a.no-color")[i].text
          event.address = doc.css("div.event-content dd.text--secondary")[i].text.split.join(" ").gsub(" (map)", "")
        else
          event.location = doc.css("div.event-content dt.event-venuename")[i].text.gsub("\t", "").gsub("\n", "")
          event.address = doc.css("div.event-content dl.event-where dd")[i].text.gsub("\t", "").gsub("\n", "")
        end
        event.url = doc.css("h3.flush--bottom a")[i].attr('href')
        event.save
      end
    end
  end
end