class Meetups::EventScraper

Public Class Methods

scrape_meetups() click to toggle source
# 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