Install the gems these scripts use with bundle install
.
First we need to gather all the public runs on RunKeeper for a city. This goes through the results page for the city and saves the URL for each page to a file.
Usage: Update the URL and path for the RunKeeper results page to scrape and output location. Run the script with ruby results-scrape.rb
.
Now that we have all the public pages' URLs, we need to extract the JSON embedded in the HTML on each page that contains the route the person followed during their run.
Usage: Update the paths to where the data should be loaded and output. Run the script with ruby routes-scrape.rb
.
Lastly, to load the data into QGIS, I formatted the scraped routes' JSON into a QGIS file. This script could easily be modified to generate GeoJSON or anything else you'd prefer to work with.
Usage: Update the paths to where the data should be loaded and output. Run the script with ruby generate-gpx.rb
.
These scripts were used to gather the data needed to generate running maps for Chapel Hill, Raleigh, and Durham. I created the maps in QGIS, but the data could easily be used anywhere else (for example, loaded on an interactive map).
MIT