Foro de elhacker.net

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  :-[ :-[
Código:
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..
Código:
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
  1. mycookie = cookielib.CookieJar()
  2. 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..
Código:
#!/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
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
  1. mycookie = cookielib.CookieJar()
  2. 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
  1. import urllib, urllib.request, urllib.parse, http.cookiejar
  2.  
  3. usuario = "mimail@gmail.com"
  4. password = "micontrasena"
  5.  
  6. mycookie = http.cookiejar.CookieJar()
  7. opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(mycookie))
  8. urllib.request.install_opener(opener)
  9.  
  10. login_data = urllib.parse.urlencode({"m":"login","func":"process_login","tuentiemail":usuario,"password":password})
  11.  
  12. respuesta = opener.open('http://m.tuenti.com/', login_data)
  13. 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
  1. mycookie = cookielib.CookieJar()
  2. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(mycookie))
  3. urllib2.install_opener(opener)
  4.  
  5. login_data = urllib.urlencode({"m":"login","func":"process_login","tuentiemail":usuario,"password":password})
  6.  
  7. respuesta = opener.open('http://m.tuenti.com/', login_data)
  8. print(respuesta.read())
  9.  

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...