urllib2 is renamed and reworked in Python 3, handle this change by
importing urlopen and HTTPError directly.
Resolve the print issues, by using print() everywhere.
Python3 reads bytes when reading from urlopen() therefore convert it to
a string with .decode('utf-8')