Split run.py into a main file and a parse file, cleaning up the code.  Moved some code from the main() method into a separate method to allow for recursion.  Added a check for badzipfile exception, and the zip will be redownloaded if this is the case