from requests_html import HTMLSession
import json
from datetime import datetime
import calendar
now = datetime.now()
current_day = int(now.strftime("%d"))
current_month_nr = int(now.strftime("%m"))
current_month_name = calendar.month_name[current_month_nr]
current_year = int(now.strftime("%Y"))
session = HTMLSession()
url = "https://www.bexley.gov.uk/services/rubbish-and-recycling/bin-collection-calendar/rotation-week-1"
r = session.get(url)
# Get all tables with calendar
months = r.html.find("table.calendar")
# Iterate over every table
calendar = {}
for month in months:
period = month.find('caption')[0].text
month_dict = {}
for i in month.find('span'):
month_dict.update( {int(i.attrs['title'].split(':')[0].split(" ")[1]): i.attrs['title'].split(':')[1].strip()} )
calendar.update( {period:month_dict} )
# Serializing json
calendar_json = json.dumps(calendar, indent=4)
# Writing to bin_collection.json
with open("bin_collection.json", "w") as outfile:
outfile.write(calendar_json)
# Example: Print output for January 2022, 15
print(f"\n {current_month_name} {current_year}: \n", f"Day {current_day}: ",calendar[f"{current_month_name} {current_year}"][current_day].title(), "\n")