GReaper / MadridLive

Madrid Live repository
0 stars 0 forks source link

Crawler para películas #135

Open Argaide opened 10 years ago

Argaide commented 10 years ago

Esta issue es para comprender y hacer funcionar el crawler de películas que nos da la cartelera de en este momento.

Por ahora me centraré en ver cómo funciona y verlo funcionar si es que se puede.

Iré apuntando en esta issue los puntos importantes de cómo funciona que encuentre

Argaide commented 10 years ago

Crawler

El crawler es un proyecto que coge la cartelera de los cines y la vuelca a una base de datos sql

La base de datos con la que ahora mismo interactúa se llama 's05ad7ee_laradb' y tiene las siguientes tablas

Yo ahora mismo estoy trabajando en localhost

No se trabaja con la base de datos directamente, si no que tiene una clase llamada BD.java que interactúa con la base de datos

Para rellenar las tablas de información tiene unas clases llamadas extractores. Los extractores se conectan a pag web y sacan la info. Hay extractores para laguiadelocio.com, madrid.salir.com y imdb extractor Supongo que nos quedaríamos solo con uno de ellos. El que estoy usando y parece que es el que más se usa en el proyecto es la del la guia del ocio ProcesadorCarteleraGDO.java

TOR

Casi todos los métodos de conexión con la clase base de datos BD.java tienen un booleano indicando si se quiere usar Tor o no. No se qué es exactamente tor, hay una clase ConecTor, quizás sea eso. Si lo pongo a true empiezan a salir un monton de errores en la traza. Me quedará algo por configurar

El proyecto tienen un montón de cosas de las que no necesitamos como la interfaz y creo que los distintos extractores. En cuanto a lo de las provincias tendríamos que hablar si dejarlo o no. Ahora no nos hace falta, pero quizás para trabajo futuro estaría bien dejar la funcionalidad ahí

Donde me he quedado

Y hasta ahí donde he llegado por ahora Ahora mismo estoy intentando sacar las películas de Madrid. Para ello he creado una clase propia. PruebasFuncionamientoMarina.java No lo consigo del todo. Aunque no creo que sea difícil

Básicamente hay un atb con (conexión) que me da null. lo cual es lógico porque se pone a null explicitamente. Creo que me falta alguna llamada adicional.

Código

Creo que he subido el código al repositorio, pero es la primera vez que subo un archivo nuevo al SVN y no estoy segura de que lo veáis bien. He subido las librerías también para que las podáis agregar

Argaide commented 10 years ago

Más cosas sobre el crawler

Tenía problemas con el crawler y Lara me respondió que no funcionaba. La verdad me sorprende que no lo mencionase antes, porque yo contaba con que funcionaba.

A partir de aquí se nos abren dos opciones, seguir son su crawler y hacer que funcione o buscarnos otra API para la cartelera.

Ahora mismo tengo una horilla y media antes de clase y me he puesto con la opción de hacer que funcione. Estoy avanzando y por ahora parece que hacer que funcione no será difícil.

Funcionamiento del Crawler

He descubierto mejor como funciona. Básicamente se mete en la página web la guía del ocio y saca tooooodo el código html de la página a capón. A partir de ahí busca en las classes css que guardan la info que necesita.

Por ejemplo para coger las películas coge todo el código fuente html de la dir http://www.guiadelocio.com/madrid/cine/cartelera A partir de ahí busca todo el trozo de código que esté encapsulado en la clase film-cell y recibe una cosa como esta

<span><a href="/cine/archivo-peliculas/viaje-a-surtsey"> Viaje a Surtsey</a></span></td>, <td rowspan="2" valign="middle" class="film-cell">

Y así, poco a poco, saca toda la info de las películas. El Crawler no funciona porque han reformado la página web y la no buscaba por las direcciones y las clases que debería. Por ejemplo en el código que me pasó para sacar las películas tiene http://www.guiadelocio.com//cartelera/madrid pero ahora la dir es http://www.guiadelocio.com/madrid/cine/cartelera

Lo que estoy haciendo ahora

Como he dicho antes ahora estoy haciendo que su crawler funcione. Por ahora parece fácil pero no sé si me toparé con algún "muro" insalvable.

Yo propongo intentar hacer que el crawler funcione porque es lo que tenemos más a mano

GReaper commented 10 years ago

Anotación rápida Ojalá se consiga que funcione bien. ¿No tenía opción de usar otras APIS? Por ejemplo, la de IMDB. Lo digo por si fuese más fácil que guiadelocio.com.

Argaide commented 10 years ago

En cuanto a otras APIs el proyecto tiene otras clases extractoras aparte de procesadorCarteleraGDO.java que es la que estoy usando.

Tiene procesadorCarteleraSalir.java que usa salir.com que no funciona. Supongo que por lo mismo. También está IMDBExtractor.java que esta claro que se usó para algunas pruebas puesto que no tiene casi código dentro ni nada de lo que se necesitas.

Argaide commented 10 years ago

Tablas que por ahora tengo en la base de datos y que relleno.

Provincia

ID Nombre

Pelicula

ID Titulo Anyo Genero Duracion Calificacion Nacionalidad URL URLCartel

Peliprovincia

IDPelicula IDProvincia

Dirigen

IDPelicula Director

Actuan

IDPelicula Actor

Descripcion

IDPelicula Descripcion

Cine

IDCine Nombre Direccion IDProvincia URL Latitud Longitud

Sesion

IDPelicula IDCine Hora Dia Mes Observaciones