updated to conform to Python 3; BeautifulSoup upgraded to version 4 and using lxml parser because the default Python HTML parser does not handle the invalid ESPN markup correctly
updated to reflect upgrade to Python 3, including new details about dependencies (Beautiful Soup 4 and lxml)