Simular Navegacion
Etapas:
-Login Web
-Procesamiento datos
-Almacen datos
-Mostrar datos
-Interfaz para gestionar aplicacion
-Colocar datos login
-Elegir datos a extraer
-Salvar datos en archivo
-Donde se mostraran resultados
Para empezar:
- Crear formulario acceso
- Crear cookies sesion
- Analizar encabezados hhtp, post y cookies
- Usar pycurl para loguear en página
Hay una cookie que genera el sitio, JSESSIONID_CTX, que aun no se exactamente que es. Por lo que he leido tiene algo que ver con aplicaciones java, pero por lo que he visto es la cookie que mantiene la sesión abierta. Si borro esta cookie se cierra la sesión
La dirección web esta codificada, y para cada sesión se genera una clave diferente, pero todas siguen este patrón
https://loc3.lacaixa.es/GPeticiones;WebLogicSession=
Sabiendo esto he intentado abrir una sesión manualmente y guardarme el valor de la cookie y el valor de la dirección web, pero el wget:
- No se que hace con la dirección pero no pasa todo lo que hay despues del ;
- No se si una cookie de sesión se puede guardar como archivo de texto y que el wget la envie
Tendré que mirar:
- Donde se guardan las cookies de sesión en el ordenador cliente?
- Como se puede crear una cookie manualmente, sin php, ni javascript, ...
- Se podria enviar la página principal con los campos de usuario y contraseña rellenados?
Funcionamiento página:
-Se carga portal.lacaixa.es
-El formulario tiene una funcion Javascript (CargaYTrata()) en el onsubmit
-Esta funcion coloca la dirección lolopo/nocache/lolopo_es.html?loce=es-particulars-home-particulares-06-i01-3-E en el frame oculto FOculto
-En este frame oculto se carga un script desde una página de la caixa en el que nos da el valor de wblSession (esta variable indica la dirección http de nuestra linea oberta pero codificada)
-En el script también hay las funciones que codifican el pin
-Una vez codificado el pin hay un formulario con inputs ocultos que una función Javascript se encarga de enviar mediante el método document.forms.xxx.submit()
El método que he encontrado ha sido utilizando PhantomJS (una aplicación que ejecuta el motor de Webkit con Javascript).
-Con este programa para acceder a los elementos de la página lo hago a través del DOM.
-Este programa me permite hacer peticiones a la página web, hacer callbacks para esperar la respuesta, y luego continuar ejecuntando el código
-Me he encontrado que para poder navegar por esta web que esta llena de frames, con phantomjs solamente es bastante tedioso. He encontrado CasperJS, que es una API que trabaja conjuntamente con PhantomJS y soluciona el tema de navegar por la web, hacer clicks, etc etc
Procedimiento para loguearse:
Recursos:
Lugar donde se guardan las cookies en Firefox: c:/Usuario/Nombre usuario/AppData/Roaming/Mozilla/Firefox/Profiles/<nombre raro>/cookies.sqlite
Opciones del wget para bajar una página funcional (con estilos e imágenes) -p -k
En wget con -U "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0" simulamos agente de usuario de Firefox