Files
scrapers/Working/venues/mn.mpls.UptownVFW.py

88 lines
2.8 KiB
Python
Raw Normal View History

2025-11-30 16:29:50 -05:00
import os, sys
from datetime import datetime
from dateutil import relativedelta
2026-01-09 22:49:19 -05:00
sys.path.append('/var/www/digisnaxx.ado/scrapers')
import dtss
dtss.getReady()
2025-11-30 16:29:50 -05:00
from time import sleep
from pprint import pprint as ppr
import pytz
from events.models import Organization, Scraper, Event
import events.digitools as digitools
from selenium.webdriver.common.by import By
from lxml import html
venue, created = Organization.objects.get_or_create(
name="Uptown VFW",
city="Minneapolis",
website="https://noboolpresents.com/venues/uptown-vfw/",
is_venue = True
)
2026-01-09 22:49:19 -05:00
scraper,item_count_start, virtcal = digitools.getScraper(venue, venue.website, 'msp')
2025-11-30 16:29:50 -05:00
2026-01-24 19:01:47 -05:00
tz_str = " -0600 UTC"
2026-02-19 22:49:47 -05:00
DATETIME_FORMAT = '%a %B %d @ %I:%M %p %Y %z %Z'
DATETIME_FORMAT_2 = '%a %B %d @ %I:%M %p %Y %z %Z'
2025-11-30 16:29:50 -05:00
calendar_url = 'https://noboolpresents.com/venues/uptown-vfw/'
current_year = str(datetime.now().year)
if len(sys.argv) >= 2:
arg1 = sys.argv[1]
br = digitools.getBrowser(arg1)
else:
print("No run_env")
quit()
br.get(calendar_url)
sleep(20)
def getEvents(br):
ps = html.fromstring(br.page_source)
events = ps.xpath('.//*/article')
for event in events:
deets = {}
dateTime = event.xpath('.//*/span[@class="tribe-event-date-start"]/text()')[0].replace("", "").strip() + " " + current_year
title = event.xpath('.//*/h2[@class="alt-font"]/a/text()')[0].replace("\n", "").replace("\t", "")
link = event.xpath('.//*/h2[@class="alt-font"]/a/@href')[0]
try:
2026-02-19 22:49:47 -05:00
print("First Try", dateTime)
2025-11-30 16:29:50 -05:00
new_event, created = Event.objects.update_or_create(
scraper = scraper,
event_type = 'Mu',
show_title = title,
show_link = link,
2026-01-24 19:01:47 -05:00
show_date = datetime.strptime(dateTime + tz_str, DATETIME_FORMAT),
2025-11-30 16:29:50 -05:00
venue = venue
)
digitools.add_calendar(new_event, 'msp')
scraper.items+=1
except Exception as e:
2026-01-09 22:49:19 -05:00
try:
2026-02-19 22:49:47 -05:00
print("New Try", dateTime)
2026-01-09 22:49:19 -05:00
new_event, created = Event.objects.update_or_create(
scraper = scraper,
event_type = 'Mu',
show_title = title,
show_link = link,
2026-02-19 22:49:47 -05:00
show_date = datetime.strptime(dateTime.strip() + tz_str, DATETIME_FORMAT_2),
2026-01-09 22:49:19 -05:00
venue = venue
)
digitools.add_calendar(new_event, 'msp')
scraper.items+=1
except Exception as e:
2026-02-19 22:49:47 -05:00
print("oops", e)
ppr(event)
2025-11-30 16:29:50 -05:00
getEvents(br)
br.find_element(By.XPATH, './/*/li[@class="tribe-events-c-nav__list-item tribe-events-c-nav__list-item--next"]/a').click()
sleep(5)
getEvents(br)
br.close()
digitools.updateScraper(scraper, item_count_start)