Class: MeetupScraper::Scraper
- Inherits:
-
Object
- Object
- MeetupScraper::Scraper
- Defined in:
- lib/meetup_scraper/scraper.rb
Overview
Class Method Summary collapse
Class Method Details
.fetch_event_details(url) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/meetup_scraper/scraper.rb', line 31 def self.fetch_event_details(url) doc = Nokogiri::HTML(open(url)) items = doc.css('#event-content') event = {} items.each do |item| event[:date] = item.css('#event-when-display h3').text event_start_time = item.css('#event-start-time span').text event_end_time = item.css('#event-end-time span').text if (event_end_time != nil && event_end_time != '') && (event_start_time != nil && event_start_time != '') event[:time] = "#{event_start_time} to #{event_end_time}" else time = item.css('#event-when-display p').text event[:time] = time if time != '' || time != nil end address = item.css('#event-where-display .event-where-address').text.gsub(/\(map\)/, '').strip address = 'Signup to view address' if address == nil || address == '' event[:address] = address description_text = '' paragraphs = item.css('#event-description-wrap p') paragraphs.each {|p| description_text += p.text.gsub(/â\u0080¢/, '') + "\n"} event[:description] = description_text.strip end event end |
.fetch_meetup_list(url) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/meetup_scraper/scraper.rb', line 7 def self.fetch_meetup_list(url) doc = Nokogiri::HTML(open(url)) items = doc.css('.searchResults .event-listing-container .event-listing') items.collect do |item| event = {} title = item.css('.chunk a.event span').inner_text if title != '' event[:title] = title event[:organiser] = item.css('.chunk .text--labelSecondary a span').inner_text event[:url] = item.css('a').first.attr('href') num_attending = item.css('.text--secondary .attendee-count').inner_text event[:num_attending] = num_attending.strip.slice(0, 4).gsub(/[^\d]/, '') end time = item.css('.text--secondary time').text if time != '' event[:time] = time event[:date] = item.css('time').attr('datetime').value end # event[:location] = item.css('.row-item')[1].css('.text--secondary a').text.strip event end end |