Using Python to fetch Republican Primary results in JSON
Join the DZone community and get the full member experience.
Join For FreeOver at Pastie.org, they have an interesting Python Script that returns the results of the Republican Primary in JSON.
Enjoy!
import json import sys import urllib2 from BeautifulSoup import BeautifulSoup import re #Usage python elections.py State Name #Example python elections.py massachusetts state = sys.argv[1] url = ("http://elections.msnbc.msn.com/ns/politics/2012/%s/Republican/primary/" % state) html = BeautifulSoup(urllib2.urlopen(url)).prettify() soup = BeautifulSoup(html) cities = soup.findAll("div", {"class": re.compile(r'\bresultSlice\ countyResults\b')}) results = {} for city in cities: cityName = ''.join((city.find("div", {"class": "state"})).findAll(text=True)).strip() results.setdefault(cityName, {}) table = city.findAll("table", {"class": "results"}) for rows in table: rows = rows.findAll("tr", {"class": re.compile(r'\brep\b')}) for row in rows: try: canidate = ''.join(row.find("td", {"class": "name"}).findAll(text=True)).strip() votes = ''.join(row.find("td", {"class": "votes"}).findAll(text=True)).strip() if votes == "": votes = 0 results.setdefault(cityName, {}).setdefault((canidate.replace("\n","")).replace(" ", " "), {})['votes'] = votes except Exception: continue print json.dumps(results, indent=4)
Enjoy!
JSON
Python (language)
Fetch (FTP client)
Opinions expressed by DZone contributors are their own.
Comments