From 4309777dcf543f5e7293b8d5e0e5fb9c46437712 Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Thu, 10 Sep 2020 22:56:05 -0400 Subject: [PATCH] Add rudimentary COVID Dashboard parser Since the dashboard might change layout in the future, this does nearly no error checking/data formatting. --- covid_scraper/main.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 covid_scraper/main.py diff --git a/covid_scraper/main.py b/covid_scraper/main.py new file mode 100644 index 0000000..caadea8 --- /dev/null +++ b/covid_scraper/main.py @@ -0,0 +1,21 @@ +import os +import requests +from bs4 import BeautifulSoup +import json + +res = requests.get("https://covid19.rpi.edu/dashboard") +soup = BeautifulSoup(res.text.encode("utf8"), "lxml") + +data = {} + +dashboard = soup.find("div", "dashboard-stats").find("div", "field__items") + +for div in dashboard.find_all("div", "field__item", recursive=False): + field_name = div.find("div", "field--name-field-stat-description").text + field_stat = div.find("div", "field--name-field-stat").text + data[field_name] = field_stat + +data["caption"] = soup.find("div", "field--name-field-stats-caption").text + +with open(f"covid.json", "w") as outfile: + json.dump(data, outfile, sort_keys=False, indent=4)