Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: SheKeL_C$ en 28 Mayo 2010, 18:08 PM

Título: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 28 Mayo 2010, 18:08 PM
Me gustaria hacer un programa que descarge algunas imagenes pero para ello tengo que estar logueado en la web..

Como podria loguearme?? creo que es con el modulo httplib.. pero no se
Título: Re: Python - Autentificarme en una web
Publicado por: Novlucker en 28 Mayo 2010, 18:36 PM
Mirate esto a ver si te ayuda :P

http://foro.elhacker.net/scripting/python_enviar_un_dato_a_traves_de_un_input_html-t264641.0.html

Saludos
Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 28 Mayo 2010, 21:45 PM
No se seguir a partir de aqui.. es mas, no se si se logea o no  :-[ :-[
login_data = urllib.urlencode({"tuentiemail":usuario,"password":password})
urllib2.urlopen('http://m.tuenti.com/?m=login', login_data)

Título: Re: Python - Autentificarme en una web
Publicado por: ~ Yoya ~ en 28 Mayo 2010, 22:08 PM
Si la web usa cookies, puedes hacerle una petición GET enviando en las cabeceras las cookies...
Título: Re: Python - Autentificarme en una web
Publicado por: Novlucker en 28 Mayo 2010, 22:12 PM
Revisa puntualmente este ..

http://foro.elhacker.net/scripting/python_enviar_un_dato_a_traves_de_un_input_html-t264641.0.html;msg1292324#msg1292324

.... es casi igual que el tuyo, pero se abre un contenedor para la sesión de usuario, y es que luego del urlopen ya estas logado, ahí puedes hacer lo que gustes :P

Saludos
Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 29 Mayo 2010, 00:15 AM
He probado con lo que has dicho..
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)

login_data = urllib.urlencode({"tuentiemail":usuario,"password":password})


respuesta = opener.open('http://m.tuenti.com', login_data)
print(respuesta.read())


He cambiado lo de 'tuentimail' porque ese es el id de la caja de texto del usuario
Como ves al terminar devuelve el codigo fuente, pero me devuelve a la pagina del login (como si no se hubiese podido logear).. yo esperaba que me devolviese a la ventana siguiente de loguearse
Título: Re: Python - Autentificarme en una web
Publicado por: Novlucker en 29 Mayo 2010, 00:25 AM
Creo que es porque estas "apuntando" a cualquier lado :xD
Prueba con esta :P
:http://m.tuenti.com/?m=login&func=process_login

Saludos
Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 29 Mayo 2010, 00:39 AM
Ok... creo que voy por el buen camino, gracias ;)

Pero ahora me ha aparecido algo nuevo...

Las cookies de tu navegador se encuentran desactivadas. Debes activarlas.
Título: Re: Python - Autentificarme en una web
Publicado por: Novlucker en 29 Mayo 2010, 00:43 AM
Te sale eso? Si para eso sirve justamente el cookieprocessor :-\
Importas correctamente todos los modulos? no te sale ningún error de código?


Modifica esta parte
Código (python) [Seleccionar]
mycookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(mycookie))


Saludos
Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 29 Mayo 2010, 00:46 AM
Esto es todo lo que tengo..
#!/usr/bin/env python
# -*- coding: cp1252 -*-

import httplib, urllib, urllib2, cookielib

# Configuracion

Servidor = "m.tuenti.com"
usuario = "aaaaaaaaaaaa@gmail.com"
password = "unapalabracualquiera"
dir_downloads = "~/Escritorio"



opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)

login_data = urllib.urlencode({"tuentiemail":usuario,"password":password})


respuesta = opener.open('http://m.tuenti.com/?m=login&func=process_login', login_data)
print(respuesta.read())

Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 29 Mayo 2010, 00:48 AM
Cita de: Novlucker en 29 Mayo 2010, 00:43 AM
Te sale eso? Si para eso sirve justamente el cookieprocessor :-\
Importas correctamente todos los modulos? no te sale ningún error de código?


Modifica esta parte
Código (python) [Seleccionar]
mycookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(mycookie))


Saludos


Me sale lo mismo
Título: Re: Python - Autentificarme en una web
Publicado por: Novlucker en 29 Mayo 2010, 01:13 AM
A ver así ...

Código (python) [Seleccionar]
import urllib, urllib.request, urllib.parse, http.cookiejar

usuario = "mimail@gmail.com"
password = "micontrasena"

mycookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(mycookie))
urllib.request.install_opener(opener)

login_data = urllib.parse.urlencode({"m":"login","func":"process_login","tuentiemail":usuario,"password":password})

respuesta = opener.open('http://m.tuenti.com/', login_data)
print(respuesta.read())

[Edito]
Modificalo según tus modulos, ya que yo estoy usando python 3

Saludos
Título: Re: Python - Autentificarme en una web
Publicado por: SheKeL_C$ en 29 Mayo 2010, 01:25 AM
Lo he modificado hasta llegar a esto
Código (python) [Seleccionar]
mycookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(mycookie))
urllib2.install_opener(opener)

login_data = urllib.urlencode({"m":"login","func":"process_login","tuentiemail":usuario,"password":password})

respuesta = opener.open('http://m.tuenti.com/', login_data)
print(respuesta.read())


Sigue sin ir...

Si quieres dejalo ya.. no quiero seguir molestandote, ya buscare yo por mi cuenta.. como quieras
Título: Re: Python - Autentificarme en una web
Publicado por: ~ Yoya ~ en 29 Mayo 2010, 01:44 AM
Bueno, aunque no se python, se como hacer una autentificacion....
Envió vía POST los valores del formulario del login.
Luego de enviar el valor via POST, leo el codigo de fuente y mediante expresiones regulares verifico que este conectado o que los datos son incorrectos...

Necesitaras primero leer el código de fuente de la pagina y luego de eso usaras expresiones regulares para Capturar-> Verificar... Aver si me haz entendido...