Website Dare V: The Hangover

Tunnecino

Está muy bien, #60

1
EnZo

Sé que hay mucho nivel y va a estár jodido ganar, pero como se dice. Lo importante es participar.

El minimalismo va a llegaaaaaarrrrr...

2
alterego

Otro que se anima -> http://websitedare5.net16.net/
Todavía le queda, en teoría introduces el nombre de una película y te muestra su ficha, estoy cogiendo los datos de imdb(scrapping), pero no siempre muestra lo que debería, como series etc, a ver si mañana lo veo con más claridad.

19 7 respuestas
Merkury

#63 Joder esta muy guapo :D

Yo sigo atascado con mi idea y encima sin tiempo! XD

elkaoD

#63 muy, muy, muy guapo y capta la esencia del tema de la Dare al 100%.

HeXaN

#63 Genial. Tienes mi puntaso.

c0rs0

#63 muy bonito y la esencia minimalista al 100%, se puede ver el código?

1 respuesta
alterego

#67 claro!
Cuando este terminado subo el código, que ahora está patas arriba.

1
EnZo

#63 Muy elegante el diseño :D mola la tipo y todo. Y yo haciendo el troll :palm:

N1Tr0s

Voy a colaborar, por dar algo de vida a este hilo, que me parece fenomenal.
Mi aportacion soy consciente de que no va a estar ni mucho menos a la altura (y algunos me llamarán troll) pero como ya digo, solo quiero sumar.

Edit: http://minimalism.net84.net/ (MUY IMPORTANTE: visualizar en FF. Me tengo que ir y no he sido capaz de centrarlo horizontalmente :S)

PiradoIV

#63 tremendísima, felicidades :)

1 respuesta
cryevil93

Se que mi pagina es la mas floja de todas, pero voy a intentar arreglarla un poco, de momento estoy teniendo problemas cambiando las plantillas y menus, espero que me perdoneis por la castaña que he publicado

1 respuesta
B

#72 No todo el mundo nace sabiendo, todos hemos pasado por la misma situación, no te preocupes!

cryevil93

Ya modifique la web y la hice creo que decente o al menos medio decente

http://www.pcconsejos.tk/

Tunnecino

#71 Intenta tu meter los nuevos participantes y webs en #1

GreyShock

#63 ganadora sin duda. Mejor resumidor de películas ever xD y con estilo.

alterego

El mérito de la web se lo tiene que llevar slabText (plugin jquery para que te cuadre cada linea en un ancho determinado).Te dá todo hecho.

El único "mérito" que tiene la web es el código para pillar los datos de imdb, que tampoco, sólo el tiempo que lleva meter las rutas xpath.

2 3 respuestas
Amazon

#77 pero qué chico más modesto, claro ganador sin duda alguna

elkaoD

#77 muchas veces no es cuestión de la tecnología sino de la idea.

Well done sir.

1
ratontm

#77 Creo que te lo han pedido ya, pero podrías poner el código? :qq:

Y como dice kaoD, lo que hace interesante el asunto es la idea, es que clava muy bien el tema (minimalistmo).

alterego

En primer lugar, no llevo mucho programando y seguro que se puede hacer mejor. La idea es sacar datos de una web en concreto mediante xpath y ya que imdb siempre presenta sus datos con la misma estructura pues viene de perillas.

Para ver la ficha de la pelicula UP en imdb, no vale con poner www.imdb.com/up o imdb.com/title/upo algo parecido, le asigna a cada peli un identificador, http://www.imdb.com/title/tt1049413/?ref_=fn_al_tt_1

Por lo que no queda otra que buscar que identificado le pone a up, y luego entrar en esa url.

Meto el valor de la variable que se pasa por el formulario y lo meto en la url que tiene imdb para buscar:

$titulo = $_REQUEST['titulo'];
$url = "http://www.imdb.com/find?q=$titulo";

En un principio iba a usar curl, pero en el hosting gratuito tienen desactivada la librería, así que me bajo la página mediante file_get_contents, quizás no sea la mejor opción, pero no he dado con otra tecla.

$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

Con la página descargada y parseada, hay que buscar la ruta xpath para sacar el código de la película que queramos, yo he dado por hecho que la primera que me da imdb es la correcta.
Para sacar la ruta xpath no hay más que mirar la estructura y seguir la sintaxis, no es muy complicado. En este caso se encuentra dentro de una tabla con la clase "findList", dentro de un tr clase="findResult odd", dentro de un td clase="primary_photo" dentro de un enlace (a).

$enlace = $xpath->evaluate("//table[@class='findList']/tr[@class='findResult odd']/td[@class='primary_photo']/a");

Esto te devuelve un array con bastantes enlaces (del primer resultado, del tercero, quinto ... los impares al ser odd).

$tt = array();
foreach ($enlace as $e) {
	 $tt[] = $e->getAttribute('href');
}

Sólo me interesa el href de la primera película asi que: ( tt[0] = /title/tt1049413 )

$t = $tt[0];

Repetimos el paso primero pero con el código de la película

$url = "http://www.imdb.com$t";
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

Una vez descargada la página con la ficha de la película no queda más que seleccionar la información que queremos.
Por ejemplo para sacar los actores:

//$actores
$actores = array();

$actores1 = $xpath->evaluate("//div[@itemprop='actors']/a/span[@itemprop='name']");

foreach ($actores1 as $temp) {
	$actores[] = $temp->textContent;
}

Ya sólo queda la paciencia que una tenga para ir sacando cada una de las rutas xpath.

Seguro que se puede optimizar, mejorar, así que estoy más que abierto a sugerencias/críticas.

9