Dada una gran lista de urls, ¿cuál es una forma de verificar cuáles están activas / inactivas?

Supongamos que estaba dando esta lista de urls:

website.com/thispage

website.com/thatpage

website.com/thispageagain

website.com/thatpageagain

website.com/morepages

… podría ser más de decir 1k urls.

¿Cuál es la forma mejor / más fácil de recorrer un poco esta lista y verificar si la página está activa o no?

Realizar una solicitud HEAD en cada uno de ellos.

Utilice esta biblioteca: http://docs.python-requests.org/en/latest/user/quickstart/#make-a-request

requests.head('http://httpbin.org/get').status_code 

Aquí hay un ejemplo en Python.

 import httplib2 h = httplib2.Http() listUrls = ['http://www.google.com','http://www.xkcd.com','http://somebadurl.com'] count = 0 for each in listUrls: try: response, content = h.request(listUrls[count]) if response.status==200: print "UP" except httplib2.ServerNotFoundError: print "DOWN" count = count + 1 

Hay una respuesta SO que muestra cómo realizar solicitudes HEAD en Python:

¿Cómo se envía una solicitud HEAD HTTP en Python 2?

Abra un grupo de hilos, abra una URL para cada uno, espere 200 o 404. Enjuague y repita.