From 74b4e6dd3a9964a3d0b2587181e83096f76edb1d Mon Sep 17 00:00:00 2001 From: Raphael Roberts Date: Wed, 9 Jan 2019 12:33:18 -0600 Subject: [PATCH] finshed body_create --- body_create.py | 14 ++++++++++++-- scraper.py | 6 +++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/body_create.py b/body_create.py index b198a7b..8056538 100644 --- a/body_create.py +++ b/body_create.py @@ -37,7 +37,7 @@ def rrule_former(class_obj): days = class_obj.days start =datetime.datetime.combine(class_obj.date_range[0],class_obj.time_range[0]).astimezone() end =datetime.datetime.combine(class_obj.date_range[1],class_obj.time_range[1]).astimezone() - + days = [ (day -1) % 7 for day in days] ret = rrule.rrule(freq=rrule.WEEKLY,dtstart=start,wkst=rrule.SU,until=end,byweekday=days) ret_str = str(ret).split('\n')[-1] @@ -83,5 +83,15 @@ def test_class2body(): test_result = list(filter(bool,map(create_body,classes))) return test_result +def create_event(class_list): + for class_obj in class_list: + body,lab_body = create_body(class_obj) + yield body + if lab_body: + yield lab_body if __name__ == "__main__": - json_dump(test_class2body()) \ No newline at end of file + from scraper import get_classes + with open('schedule.html') as file: + classes = get_classes(file.read()) + l = list(create_event(classes)) + json_dump(l) diff --git a/scraper.py b/scraper.py index f5f8c47..6196f46 100644 --- a/scraper.py +++ b/scraper.py @@ -65,7 +65,7 @@ class Class: if len(data) > 1: data,lab = map(lambda row: parse_horz_row(headers,row),data[:2]) - else + else: lab = None data = data[0] @@ -82,7 +82,7 @@ class Class: datetime2date_time(s,'time'), datetime2date_time(e,'time'), ) - s,e = map(dateparse,time_data['date range'].split(' - ')) + s,e = map(dateparse,time_data['date range'].split(' - ')) ret['date_range'] = ( datetime2date_time(s,'date'), datetime2date_time(e,'date'), @@ -105,7 +105,7 @@ def get_classes(page): page = BS(page,'lxml') tables = page.find_all('table',attrs= {'class':'datadisplaytable'}) groups = ((tables[i],tables[i+1]) for i in range(0,len(tables),2)) - return list(map(Class.scrape,groups)) + return map(Class.scrape,groups) if __name__ == "__main__": with open('schedule.html') as file: