Skip to content

Instantly share code, notes, and snippets.

@rdelcorro
Created March 23, 2020 23:07
Show Gist options
  • Save rdelcorro/4b50dab401fb43f4101b004821db0e28 to your computer and use it in GitHub Desktop.
Save rdelcorro/4b50dab401fb43f4101b004821db0e28 to your computer and use it in GitHub Desktop.
Corona parser
from http.server import HTTPServer, BaseHTTPRequestHandler
import requests
import json
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
headers = {'referer': 'https://www.arcgis.com/apps/opsdashboard/index.html'}
r = requests.get("https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Z7biAeD8PAkqgmWhxG2A/FeatureServer/1/query?f=json&where=(Confirmed%20%3E%200)%20AND%20(Recovered%3C%3E0)&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&orderByFields=Recovered%20desc%2CCountry_Region%20asc%2CProvince_State%20asc&resultOffset=0&resultRecordCount=250&cacheHint=true", headers=headers)
j = r.json()
ca_confirmed = 0
ca_recovered = 0
ca_deaths = 0
arg_confirmed = 0
arg_recovered = 0
arg_deaths = 0
for f in j['features']:
if f['attributes']['Country_Region'] == 'Argentina':
arg_confirmed = f['attributes']['Confirmed']
arg_recovered = f['attributes']['Recovered']
arg_deaths = f['attributes']['Deaths']
r = requests.get("https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Z7biAeD8PAkqgmWhxG2A/FeatureServer/1/query?f=json&where=(Confirmed%20%3E%200)%20AND%20(Country_Region%3D%27US%27)&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=*&orderByFields=Confirmed%20desc%2CCountry_Region%20asc%2CProvince_State%20asc&outSR=102100&resultOffset=0&resultRecordCount=250&cacheHint=true", headers=headers)
j = r.json()
for f in j['features']:
if f['attributes']['Country_Region'] == 'US' and f['attributes']['Province_State'] == "California":
ca_confirmed = f['attributes']['Confirmed']
ca_recovered = f['attributes']['Recovered']
ca_deaths = f['attributes']['Deaths']
# LA
r = requests.get('http://www.publichealth.lacounty.gov/media/Coronavirus/')
divs = []
for l in r.text.splitlines():
if 'counter-block counter-text' in l:
divs.append(int(l.split('>')[1].split('<')[0]))
divs.sort()
la_confirmed = divs[1]
la_deaths = divs[0]
response = { 'ca_confirmed': ca_confirmed,
'ca_recovered': ca_recovered,
'ca_deaths': ca_deaths,
'arg_confirmed': arg_confirmed,
'arg_recovered': arg_recovered,
'arg_deaths': arg_deaths,
'la_confirmed': la_confirmed,
'la_deaths': la_deaths
}
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self.end_headers()
t = json.dumps(response)
self.wfile.write(t.encode(encoding='utf_8'))
httpd = HTTPServer(('0.0.0.0', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment