Вы также можете проверить только имя хоста, если он находится в сети: (полезно, если URL - это API, и ему нужен POST вместо GET)
def have_internet(url):
try:
o = urlparse(url)
response = urlopen(o.scheme+'://'+o.netloc, timeout=5)
return True
except:
print('No access to',url)
return False