Hola,

quisiera poder comprobar que una determinada URL existe y es accesible, pero
sin 'descargar' su contenido, simplemente comprobar que el server está
activo, que el usuario no ha escrito mal la URL (sin 'typos'), etc., pero
sin tener que descargar su contenido. Podría hacer un simple wget the la URL
y ver si funciona, pero no me interesa.

Intuyo que puedo usar el método HEAD de HTTP que simplemente devuelve la
metainformación contenida en el HEAD. En principio eso seria suficiente.
Ejemplo:

$ curl --head http://www.google.com
HTTP/1.0 200 OK
Date: Fri, 02 Apr 2010 15:00:37 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie:
PREF=ID=09c3639ccf643ace:TM=1270220437:LM=1270220437:S=lY6HpKCqZ3lZEW9_;
expires=Sun, 01-Apr-2012 15:00:37 GMT; path=/; domain=.google.com
Set-Cookie:
NID=33=i_y0e-Tq2pAw8HxXMzD3KeH_H4Lqve81UH1WT_kQAwdJnRd0paMJz4KMZcp2cr1JqY35AkjVwYfK2UbPtlu_-9k4R0nFAuGe93JmxxebhGSdDtAxngWmq-FgfWELdfp0;
expires=Sat, 02-Oct-2010 15:00:37 GMT; path=/; domain=.google.com; HttpOnly
Server: gws
X-XSS-Protection: 0
X-Cache: MISS from httpproxy4.bnl.vip
X-Cache-Lookup: MISS from httpproxy4.bnl.vip:3128
Proxy-Connection: close

$ curl --head http://www.google.comm
HTTP/1.0 503 Service Unavailable
Server: squid/3.0.STABLE8
Mime-Version: 1.0
Date: Fri, 02 Apr 2010 15:08:02 GMT
Content-Type: text/html
Content-Length: 1823
Expires: Fri, 02 Apr 2010 15:08:02 GMT
X-Squid-Error: ERR_DNS_FAIL 0
X-Cache: MISS from httpproxy4.bnl.vip
X-Cache-Lookup: MISS from httpproxy4.bnl.vip:3128
Proxy-Connection: close

Pero de esta forma es necesario hacer demasiado 'parsing', y no siempre la
primera línea contiene "OK" aunque la URL sea válida. No tengo demasiado
claro cómo puedo validar la URL a partir de este tipo de resultados.

He estado mirando un poco las clases urllib y urllib2, pero no acabo de ver
cómo puedo hacer la validación sin que el contenido de la URL se descargue
cuando existe. Si alguien tiene algún 'link' a un ejemplo de cómo validar
una URL sin necesidad de descargar su contenido, válido para python2.3,
estaré eternamente agradecido.


Muchas gracias. Saludos cordiales,

Jose
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a