[pyar] Ayuda para Encuentro

Lucas rollbak en gmail.com
Mie Nov 13 18:56:19 ART 2013


2013/11/13 Facundo Batista <facundobatista en gmail.com>

> Hola!
>
> Si alguna vez usaron el programa Encuentro [0] sabrán que pueden bajar
> contenido desde distintos lados. Muchos de esos contenidos son de
> Conectate, y para bajarlos tienen que estar autenticados.
>
> Encuentro simplifica esta parte, ya que se loguea automáticamente con
> las credenciales que ustedes pongan.
>
> El problema es que desde hace un par de días, esto empezó a fallar :(.
> Lo estuve revisando un poco pero no lo pude hacer andar, :(
>
> Esto es lo que hace hoy por hoy (ver abajo código para que lo
> prueben): Pide la "url" que es el punto de entrada al sitio (si uds la
> prueban en su browser van a ver que les muestra el programa, un botón
> de descargar, etc) y con info que saca de ese HTML arma la "new_url",
> que es la URL que traería el contenido (si estás autenticado!), luego
> se autentica, y luego le pega a la "new_url". Cuando andaba, esto ya
> traía el video en sí; ahora sólo trae otro HTML (porque la
> autenticación falló, como pueden ver cuando imprime los headers y
> contenido de la respuesta de auth).
>
> La forma de debuguear esto a mano es prender el firebug en el browser
> (o lo que usen), poner allí la "url", autenticarse, hacer click en el
> botón de descarga. Ahí van a ver que el diálogo es el mismo (o muy muy
> parecido) a lo que hacemos por código (bah, obvio, en base a eso
> hicimos el código). Pero ahora no funciona, :/
>
> En fin. Si me pueden dar una mano con esto les agradezco, sino
> Encuentro va a sufrir un altísimo impacto en su utilidad :(.
>
> ¡Gracias!
>
> (el código de prueba...)
>
> """
> import re
> import urllib
>
> import mechanize
>
> url = "
> http://www.conectate.gob.ar/educar-portal-video-web/module/detalleRecurso/DetalleRecurso.do?canalId=1&modulo=menu&temaCanalId=1&tipoEmisionId=4&recursoPadreId=111686&idRecurso=111697
> "
>
> URL_BASE = "http://www.conectate.gob.ar"
> URL_AUTH = "
> http://conectate.gov.ar/educar-portal-video-web/module/login/loginAjax.do"
>
>
> content = mechanize.urlopen(url)
> html = content.read()
> print "ini headers:", content._headers.items()
> print "ini html (len):", len(html)
>
> url_items = dict(base=URL_BASE)
> for token in "urlDescarga idRecurso fileId".split():
>     re_str = 'id="%s" value="([^"]*)"' % (token,)
>     val = re.search(re_str, html).groups()[0]
>     url_items[token] = val
> new_url = ("%(base)s%(urlDescarga)s&idRecurso=%(idRecurso)s&"
>            "fileId=%(fileId)s" % url_items)
> print "new url:", new_url
>
> usr = "LLENAR ACA"
> psw = "LLENAR ACA"
> auth = urllib.urlencode(dict(usuario=usr, clave=psw))
> req = mechanize.Request(URL_AUTH, data=auth)
> content = mechanize.urlopen(req)
> print "auth headers:", content._headers.items()
> print "auth content (part):", repr(content.read()[:50])
>
> content = mechanize.urlopen(new_url)
> print "final headers:", content._headers.items()
> print "final content (len):", len(content.read())
> """
>
> [0] http://encuentro.taniquetil.com.ar/
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>


Buenas,

Puede ser que sea que estas haciendo un request GET (no se que hara el
mechanize.Request)? La pagina esta haciendo un POST para la autenticacion.

-- 
Lucas
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20131113/f56c3b78/attachment-0001.html>


More information about the pyar mailing list