Título: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 19 Agosto 2009, 13:52 pm Hola.
Necesito hacer en python lo siguiente: Tengo un archivo HTML con diversos inputs, y necesito rellenar uno de esos inputs y darle al boton de enviar. Para todo ello necesito estar logueado, creo que ya consigo hacer el login, pero no consigo hacer lo del input. Alguna sugerencia? Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: 6666 en 19 Agosto 2009, 14:09 pm Bueno no tengo ni idea de python pero mira:
Código: import urllib2_file Ahi se envia por metodo post la info a un upload y los input serian "name" y "file" con sus respectivos valores. lo que puedes hacer es .. ver como se loguea .. crear una funcion logear() o algo asi .. y luego hacer otra funcion con lo que quieres hacer. además ese code es muy facil de entender y modificar .. un poco más de info: Python, web forms and cookies: http://therning.org/magnus/archives/270 (http://therning.org/magnus/archives/270) Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Novlucker en 19 Agosto 2009, 15:48 pm Buenas
Básicamente lo que te ha dicho l0ve debería de servir, con urlopen (http://docs.python.org/library/urllib2.html) de urllib2 puedes hacer el envío de los datos, a esta función debes de pasarle la url base y los parámetros que siguen (los tomas del formulario) Eso si .. ten en cuenta 1 cosa ... antes del envío de los datos debes de convertir la url (parámetros) al formato correcto, para lo cual puedes hacer uso de urlencode (http://docs.python.org/library/urllib.html#urllib.urlencode) de urllib, a esta solo debes de pasar tuplas de datos (clave/variable - valor), y te devuelve una cadena con la url "armada" :P Código
Continuando con el primer ejemplo que te han dejado sería como codificar data Saludos Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 20 Agosto 2009, 08:49 am Gracias por la ayuda pero no me ha funcionado.
Un ejemplo de uso seria, por ejemplo, la web www.meneame.net La pagina de login es: http://meneame.net/login.php Y luego el input a rellenar seria el de: http://meneame.net/sneak.php Lo estoy probando con esta web y nada. Alguna idea? Mirad mi codigo: Código
Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Novlucker en 20 Agosto 2009, 15:45 pm Que versión de Python tienes? yo estoy probando ahora en la 3 ... la verdad que hay muchas cosas que no he tocado luego de migrar .. y es lindo cuando ves que le han hecho tantos cambios ... sobre todo cuando la mitad de las cosas ya no funcionan, ni los import, ni las funciones :¬¬ (por ejemplo ya no existe urllib2)
He creado un código pero es bastante diferente al tuyo y no lo puedo probar correctamente porque hasta dentro de 2 hrs no puedo comentar (me acabo de crear una cuenta a modo de prueba en meneame), además de que no estoy en mi pc y acabo de meterle python a esta donde estoy Pero eso si ..he visto algo que al menos a mi me causaba problemas en el login .. si revisas justamente el login que tienes actualmente verás que la web de menéame no devuelve nada como respuesta al ingreso de usuario y pass, ni que esta bien, ni que esta mal, simplemente recarga la web (esto lo he visto con read()). El problema en esto esta en que revisando el formulario de autentificación veo dos parametros más ... processlogin=1 y return="", así que deberías de pasarlos también Código Así si debería de ir :D .. igual si te fijas verás que además de la linea de login_data le he hecho un par de cambios más;
Obviamente prueba primero con tu code simplemente modificando los parámetros del login .. y si no sirve prueba con este segundo (el cual no esta probado por lo comentado antes) Saludos Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 20 Agosto 2009, 15:56 pm Muchísimas gracias, mañana lo pruebo ya que en la máquina donde estoy no tengo python ni nada.
Editaré el post con los resultados que obtenga, de nuevo, gracias! PD: Uso la versión 2 de python! Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 21 Agosto 2009, 08:22 am Nada, no funciona :(
Algun dia podremos... xD Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Jubjub en 21 Agosto 2009, 10:52 am Cambia el user agent, muchas veces las paginas bloquean a los user angets de la urllib y curl, y demas hierbas :D
Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Novlucker en 21 Agosto 2009, 14:06 pm XD ... pero creo que ahora esta bien y el problema lo tienes en otro lado :-X
Llegas a logarte? ... prueba modificando un poco el script aquí... Código
Esto para verificar lo que imprime .. y si corresponde con lo que debería de salir luego de logarte, para que sea más gráfico sin que tengas que ponerte a programar algo más, puedes comentar las líneas siguientes (las que están después de las que he puesto antes) y directamente redireccionar la salida del script a un html Código
Si esto funciona .. entonces el script sirve ... solo que seguimos con los problemas de los parámetros a la hora de publicar un mensaje XD De donde salió esa url sneak.php? porque no doy con ella :-\ ... y por otra parte a la hora de comentar una noticia tengo varias cosas que pasarle para poder publicarla, ej: (http://s3.subirimagenes.com:81/imagen/3075280temp.png) Además como se ve si tendrás que referencias la cookie, ya que necesitas leer su contenido para obtener el user_id, además necesitas identificar el id de la noticia, etc En definitiva, que el problema puede que sea otro y no necesariamente el script, ya que en este tipo de "programas" el problema es justamente el identificar todos los campos/parámetros que hay que pasar, además de como obtener o generar estos :P Saludos Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 21 Agosto 2009, 15:38 pm No no, lo de publicar la noticia ya es demasiado avanzado xD
Yo quiero comentar aquí: http://meneame.net/sneak.php Es como un chat. Probaré lo que dices, pero ya te digo que no hay forma. Gracias de nuevo! Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Novlucker en 21 Agosto 2009, 16:36 pm Ahora si veo donde quieres publicar, pero igual sigue siendo NO muy sencillo XD
Como imaginaba tienes varios campos más, y además el comentario tiene otro nombre: (http://s3.subirimagenes.com:81/imagen/3075724tamp2.png) Hay un par de variables identificables (el friends no es necesario para publicar en el principal), pero habría que ver de donde salen las otras Yo que tu (al igual que yo) le meto Tamper Data (https://addons.mozilla.org/en-US/firefox/addon/966) al mozilla (si ya no lo tienes)... y a hacer pruebas :P Saludos Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Kasswed en 21 Agosto 2009, 21:51 pm Buag esto es imposible, he probao de to y nada xD
Ya si eso lo sigo mirando el año que viene, esto ha podido conmigo xD Título: Re: [Python] Enviar un dato a traves de un input HTML Publicado por: Novlucker en 22 Agosto 2009, 00:01 am Pero al final llegaste al login?
Citar Ya si eso lo sigo mirando el año que viene, esto ha podido conmigo xD Entonces yo me voy a pelear con eso, no puede ser! a algo tengo que llegar, no puede ser que sea ten complicado :P[Edito] He estado revisando y los parámetros que comentaba antes se encuentran incrustados en la página (son generados con javascript): Código
Y efectivamente son esos los datos que son pasados en el post Código
Pero por más que intento no puedo enviar un mensaje sin necesidad de utilizar el inputbox :¬¬ Saludos |