import requests from bs4 import BeautifulSoup from time import sleep from influxdb import InfluxDBClient def uploadInflux(data, host='10.0.5.51', port=8086): # Main upload json_body = [ { "measurement": "liftdata", "tags": { 'resort': 'brimbacombe', }, "fields": { 'trails-day' : int(data['trails-day']), 'trails-night' :int(data['trails-night']), 'open-parks' : int(data['open-parks']), 'lift-day' : int(data['lift-day']), 'lift-night' : int(data['lift-night']), 'snowflake' : data['snowflake'], } } ] client = InfluxDBClient(host, port, database = "telegraf") # Init connection to Influx Server client.write_points(json_body) # Write Speedtest results def main(): URL = "https://brimacombe.ca/snow-conditions-and-trails" r = requests.get(URL) soup = BeautifulSoup(r.content, 'html5lib') table = soup.find_all('div', attrs = {'class':'condition-item'}) infodict = {} for item in table: title = item.find('img')['src'].replace('/a/img/icon-', '').replace('.png', '') value = str(item.find('span')).replace('','').replace('', '').strip() infodict[title] = value # for item in infodict: # print('{}: {}'.format(item, infodict[item])) uploadInflux(infodict) # print(table) while True: main() print('DATA FETCHED AND UPLOADEDED') sleep(300)