handle timeouts for urlopen()