no, me referia a url del tipo http://sitioweb.com/index.php/04/08/nuevo-post
Saludos 2010/4/4 Jose Caballero <jcaballero....@gmail.com> > > >> 2010/4/2 Jose Caballero <jcaballero....@gmail.com> >> >>> >>> >>> El 2 de abril de 2010 11:45, Boris Perez Canedo >>> <inf200...@ucf.edu.cu>escribió: >>> >>> 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 >>>> >>>> Hola Jose, >>>> >>>> la primera linea no siempre contiene OK, pero no puedes obtener el >>>> código de respuesta e interpretarlo? >>>> >>>> En el primer caso el código es 200 >>>> y en el segundo 503, utiliza las expresiones regulares. >>>> >>>> Ejemplo: >>>> (HTTP/\d\.\d)\s(\d{3}) >>>> en el grupo 1 tienes la versión del protocolo y en el grupo 2 el código. >>>> >>>> import re >>>> reobj = re.compile(r"(HTTP/\d\.\d)\s(\d{3})") >>>> >>>> match = reobj.search(primera_linea) >>>> >>>> if match: >>>> version = match.group(1) >>>> codigo = match.group(2) >>>> >>>> >>>> >>>> Saludos, >>>> Boris. >>>> >>>> >>> Hola Boris, >>> >>> eso podría valer. ¿Es siempre 200 cuando todo va bien? Si es siempre el >>> mismo número, o al menos un conjunto conocido de números, eso me vale. >>> >>> >>> > > > El 4 de abril de 2010 11:36, necudeco <necud...@gmail.com> escribió: > > NO Siempre. > > Por ejemplo con las url amigables, cuando envias una url inexistente el > sistema te devuelve una pagina que visualmente es 404, pero el codigo http > que te envia es 200 > > Saludos > > > > Hola, > ¿Te refieres a cosas como tinyurl.com? Hmmm, algo a tener en cuenta, sin > duda. Gracias por el comentario. > > > Jose > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Mario R. Uriarte Amaya 044 949369377 NeCuDeCo Asociacion Peruana de Software Libre http://necudeco.com http://apesol.org
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/