#1 30 abr 12, 21:02
Nueva API para extraer contenido de filmaffinity
Hola, estoy trabajando en un proyecto personal y por necesidad he tenido que crear esta api para poder obtener información en español de la mejor web de películas. y ya que me he currado el crearla, me gustaría compartir con vosotros su funcionamiento.
Esta API para filmaffinity esta montada en PHP y en un tiempo record por lo que estoy mirando fallos pero parece que corre bien. Los archivos estan montados en un servidor por el que cualquier usuario podra acceder a los datos desde su web, script, etc etc.
El script muestra los datos en texto plano, XML y JSON, estos dos último mas acorde para la extracción de datos.
La dirección del scrip es: http://script.spaingeek.com/filmaffinity/
Como bien se explica el funcionamiento es muy sencillo, puedes introducir el nombre de la pelicula, o la ID de filmafinity.com
Los resultados serian mostrados así:
code
Este seria el modo de texto plano, y el XML seria así:
code
Por ultimo en formato JSON:
code
Los programadores que deseen utilizarla solo tendrán que crear un pequeño script que hace de conector y podrán consultar información de cualquier película, obteniendo los datos de una forma ordenada.
Como programo en php, pienso que una salida en XML o JSON es la forma mas facil de crear un conector con DOM por ejemplo, pero supongo que para otros lenguajes como C++, Java, C#, etc puede que no sea la mas correcta.
Si alguna persona cree que existe algún método mejor para la realización de un conector que me lo comunique, estoy abierto a cualquier posibilidad.
Pensad que lo que se muestra en texto plano es un simple array, lo digo por si queréis escribir algo de código para que lo implemente simplemente tenéis que pensar que es un array con los títulos que se ven.
Por ejemplo para la realización del XML este es el código:
code
Aquí dejo un ejemplo de conector hecho en DOM para XML php, el resultado es un array con todos los datos:
code
Conector para JSON php:
code
Un saludo a todos.
EDIT:
PD: He editado la dirección del script, ahora esta montada bajo un dominio .tk ya que el servidor anterior ha fallado, y para evitar la continua modificación de los script lo monto bajo un dominio, si algun dia vuelve a fallar solo sera necesario montarlo en otro y modificar las DNS. Pido que si vuestro conector falla me aviseis para que pueda solucionarlo lo antes posible.
Esta API para filmaffinity esta montada en PHP y en un tiempo record por lo que estoy mirando fallos pero parece que corre bien. Los archivos estan montados en un servidor por el que cualquier usuario podra acceder a los datos desde su web, script, etc etc.
El script muestra los datos en texto plano, XML y JSON, estos dos último mas acorde para la extracción de datos.
La dirección del scrip es: http://script.spaingeek.com/filmaffinity/
Como bien se explica el funcionamiento es muy sencillo, puedes introducir el nombre de la pelicula, o la ID de filmafinity.com
Obtener los datos con el nombre:
Formato: http://script.spaingeek.com/filmaffinity/?d1=[NOMBRE_PELICULA]
Ejemplo: http://script.spaingeek.com/filmaffinity/?d1=matrix
Obtener los datos con la ID
Formato: http://script.spaingeek.com/filmaffinity/?d2=[ID_PELICULA]
Ejemplo: http://script.spaingeek.com/filmaffinity/?d2=932476
Activa XML:
Añadir "&xml=1" al final de la URL sin las comillas
Ejemplo: http://script.spaingeek.com/filmaff...matrix&xml=1
Ejemplo: http://script.spaingeek.com/filmaff...932476&xml=1
Activa JSON:
Añadir "&json=1" al final de la URL sin las comillas
Ejemplo: http://script.spaingeek.com/filmaff...atrix&json=1
Ejemplo: hhttp://script.spaingeek.com/filmaff...32476&json=1Los resultados serian mostrados así:
code
Este seria el modo de texto plano, y el XML seria así:
code
Por ultimo en formato JSON:
code
Los programadores que deseen utilizarla solo tendrán que crear un pequeño script que hace de conector y podrán consultar información de cualquier película, obteniendo los datos de una forma ordenada.
Como programo en php, pienso que una salida en XML o JSON es la forma mas facil de crear un conector con DOM por ejemplo, pero supongo que para otros lenguajes como C++, Java, C#, etc puede que no sea la mas correcta.
Si alguna persona cree que existe algún método mejor para la realización de un conector que me lo comunique, estoy abierto a cualquier posibilidad.
Pensad que lo que se muestra en texto plano es un simple array, lo digo por si queréis escribir algo de código para que lo implemente simplemente tenéis que pensar que es un array con los títulos que se ven.
Por ejemplo para la realización del XML este es el código:
code
Aquí dejo un ejemplo de conector hecho en DOM para XML php, el resultado es un array con todos los datos:
code
Conector para JSON php:
code
Un saludo a todos.
EDIT:
PD: He editado la dirección del script, ahora esta montada bajo un dominio .tk ya que el servidor anterior ha fallado, y para evitar la continua modificación de los script lo monto bajo un dominio, si algun dia vuelve a fallar solo sera necesario montarlo en otro y modificar las DNS. Pido que si vuestro conector falla me aviseis para que pueda solucionarlo lo antes posible.
Mensaje editado 9 veces. Última edición 11 sep 12, 16:37
#2 30 abr 12, 21:52
Yo haría que devolviese un JSON.
Un saludo.
Un saludo.
#3 30 abr 12, 22:13
#2 Cierto, ya lo tengo implementado:
Gracias por el aviso
Activa JSON:
Añadir \"&json=1\" al final de la URL sin las comillas
Ejemplo: http://www.infopelicula.nixiweb.com...atrix&json=1
Ejemplo: http://www.infopelicula.nixiweb.com...32476&json=1Gracias por el aviso
#4 30 abr 12, 22:29
Por cierto exactamente la ID de la película como va, imagínate que quiero hacer un barrido de las 100 primeras registradas, cojo y voy cogiendo 0,1,2,3... o 0000001,0000002 o... ¿no hay linealidad?
Gracias.
Gracias.
#6 1 may 12, 01:09
#1 Ajax. Creo que era una de tus dudas vamos.
http://www.bloogie.es/tecnologia/pr...mplo-paso-a-paso
http://www.bloogie.es/tecnologia/pr...mplo-paso-a-paso
#9 1 may 12, 14:26
Tenéis algún ejemplo de conector para JSON? que reconstruya el array a partir del JSON.
Un saludo.
Un saludo.
#10 1 may 12, 17:37
ehmm se puede saber como la has hecho? filmaffinity tiene API para desarrolladores? xD
#12 1 may 12, 18:49
#13 2 may 12, 18:41
Una pregunta, hace un tiempo yo hice un scrapping de IMDB, el caso es que después de investigar un poco, vi que es ilegal en algunos casos, como por ejemplo con IMDB. Has mirado en los Terms of use de FilmAffinity si pone algo al respecto?
Solo lo digo por que no te metas en problemas
Solo por curiosidad, los datos los sacas mediante expresiones regulares?
Un saludo y enhorabuena por el curro!!
Solo lo digo por que no te metas en problemas

Solo por curiosidad, los datos los sacas mediante expresiones regulares?
Un saludo y enhorabuena por el curro!!
#14 2 may 12, 20:07
#13 Si me leí la política de privacidad y las condiciones de uso, y no dice nada al respecto.
A tu otra pregunta no, no utilizo "regex", buen creo que en dos cosas, pero son sentencias muy simples, tampoco utilizo ninguna técnica de intrusión "haxor" que accede a la base de datos interna ni nada por el estilo. Mas bien un poco de regex como comento, algo de DOM, y mucho ingenio, arrays y objetos diría yo xD.
PD: si encontráis errores (que seguro que existen) me lo comunicáis y lo arreglo, ahora tengo algunos problemas con la exportación en JSON y la codificación, no estoy muy puesto en JSON así que lo solucionare lo antes posible.
A tu otra pregunta no, no utilizo "regex", buen creo que en dos cosas, pero son sentencias muy simples, tampoco utilizo ninguna técnica de intrusión "haxor" que accede a la base de datos interna ni nada por el estilo. Mas bien un poco de regex como comento, algo de DOM, y mucho ingenio, arrays y objetos diría yo xD.
PD: si encontráis errores (que seguro que existen) me lo comunicáis y lo arreglo, ahora tengo algunos problemas con la exportación en JSON y la codificación, no estoy muy puesto en JSON así que lo solucionare lo antes posible.
Mensaje editado 2 veces. Última edición 2 may 12, 20:17
#15 18 may 12, 22:23
Tras una leve caída he mejorado y resubido los script ahora se mueve bajo un dominio .tk
Un saludo a todos.
Un saludo a todos.
#16 21 may 12, 12:49
como generas el XML? o sea, no digo como coges la info de la web y eso, me refiero a teniendo los datos, como lo exportas en XML o en JSON, ya que hasta ahora yo siempre lo hacia manualmente(creando el XML/JSON manualmente como cadena de texto)
#17 21 may 12, 18:03
#16 el XML de forma manual, ya que aun no me he currado una función para hacerlo de forma automática.
Pero el json si existe una funcion y es esta:
Para el json primero codifico el array con htmlentities para que no de problemas al decodificar con los caracteres raros, y después uso la función json_encode (se q te estarás dando de cabezazos contra la pared, lo se) para decodificarlo uso esta funcion q esta mejorada respecto al del post original:
Esta un poco personalizada pero se entiende bien, esta función te devuelve el array tal cual estba antes de codificarlo con json.
Mas dudas ya sabéis
PD: si alguien necesita un programador php aquí dejo mi web de contacto: http://about.me/danielfs
header("Content-Type: application/xml; charset=ISO-8859-1");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<pelicula>';
echo '<titulo>' . $datos['titulo'] . '</titulo>';
echo '<titulo_original>' . $datos['titulo_original'] . '</titulo_original>';
echo '<rating>' . $datos['rating'] . '</rating>';
echo '<votos>' . $datos['votos'] . '</votos>';
echo '<ano>' . $datos['ano'] . '</ano>';
echo '<duracion>' . $datos['duracion'] . '</duracion>';
echo '<pais>' . $datos['pais'] . '</pais>';
echo '<cartel>' . $datos['cartel'] . '</cartel>';
echo '<trailers>' . $datos['trailers'] . '</trailers>';
echo '<director>' . $datos['director'] . '</director>';
echo '<guion>' . $datos['guion'] . '</guion>';
echo '<musica>' . $datos['musica'] . '</musica>';
echo '<fotografia>' . $datos['fotografia'] . '</fotografia>';
echo '<reparto>' . $datos['reparto'] . '</reparto>';
echo '<productora>' . $datos['productora'] . '</productora>';
echo '<genero>' . $datos['genero'] . '</genero>';
echo '<sinopsis>' . $datos['sinopsis'] . '</sinopsis>';
echo '<script_by>' . $datos['script_by'] . '</script_by>';
echo '</pelicula>';Pero el json si existe una funcion y es esta:
$datos_b = array_map('htmlentities',$datos['criticas']);
$datos = array_map('htmlentities',$datos);
$datos['criticas'] = $datos_b;
print_r(json_encode($datos));Para el json primero codifico el array con htmlentities para que no de problemas al decodificar con los caracteres raros, y después uso la función json_encode (se q te estarás dando de cabezazos contra la pared, lo se) para decodificarlo uso esta funcion q esta mejorada respecto al del post original:
function json_conex($go){
$resultado = strpos($go, "id=");
if($resultado !== FALSE){
$go = explode("=", $go);
$json = file_get_contents('http://123script.tk/filmaffinity/?d...9;.urlencode($go[1]).'&json=1');
}else{
$json = file_get_contents('http://123script.tk/filmaffinity/?d...p;json=1');
}
$d=json_decode($json);
$f = toArray($d);
$datos = array_map("html_entity_decode", $f);
return $datos;}Esta un poco personalizada pero se entiende bien, esta función te devuelve el array tal cual estba antes de codificarlo con json.
Mas dudas ya sabéis

PD: si alguien necesita un programador php aquí dejo mi web de contacto: http://about.me/danielfs
#18 20 jun 12, 09:28
Hola.
He estado probándolo y funciona correctamente pero querría comentar algo por si fuese posible mejorarlo y es el tema de la codificación de caracteres.
Hay muchos caracteres que no los pilla bien como en el caso de los títulos.
En el campo de titulo no coge bien los caracteres de este y sin embarco en el campo titulo_original si lo coge bien, cuando entiendo que se harán del mismo modo y se supone que deberían de salir bien ambos.
Aparte de esto solo dar la enhorabuena por este gran trabajo.
He estado probándolo y funciona correctamente pero querría comentar algo por si fuese posible mejorarlo y es el tema de la codificación de caracteres.
Hay muchos caracteres que no los pilla bien como en el caso de los títulos.
En el campo de titulo no coge bien los caracteres de este y sin embarco en el campo titulo_original si lo coge bien, cuando entiendo que se harán del mismo modo y se supone que deberían de salir bien ambos.
Aparte de esto solo dar la enhorabuena por este gran trabajo.
#20 11 jul 12, 15:29
Hola
Desde hace unos días me dejo de funcionar mostrandome el siguiente error:
Forbidden
You don't have permission to access /www/123script.tk/index.php on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
¿Es temporal?
En cuanto a la id de las que me daban fallos de codificación tendría que mirar cual si vuelve a funcionar para ver si podrías corregirlo.
Gracias
Desde hace unos días me dejo de funcionar mostrandome el siguiente error:
Forbidden
You don't have permission to access /www/123script.tk/index.php on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
¿Es temporal?
En cuanto a la id de las que me daban fallos de codificación tendría que mirar cual si vuelve a funcionar para ver si podrías corregirlo.
Gracias
#21 11 jul 12, 23:45
La codificación ya la arregle, el servidor esta caido por limite de transferencia, son muchos miles de visitas diarias.
Lo estoy solucionando, en 2 días lo tendré listo.
Un saludo.
Lo estoy solucionando, en 2 días lo tendré listo.
Un saludo.
#22 24 jul 12, 12:57
Servidor caido
Se sabe para cuando volverá a estar disponible de nuevo?
Gracias y enhorabuena
Gracias y enhorabuena
- djtonight
- fap caster

#23 24 jul 12, 14:03
Gran trabajo.
Quizá deberías mirar algun repositorio o algo donde te alojen tu script y así no tener que chupar tu transferencia mensual.
Quizá deberías mirar algun repositorio o algo donde te alojen tu script y así no tener que chupar tu transferencia mensual.
#24 4 ago 12, 12:32
Ya lo tengo alojado en otro servidor, espero que en este no se caiga.
Un saludo a todos.
Un saludo a todos.
#25 26 ago 12, 15:45
hola, como estan?
yo he desarrollado una api muy parecida... me sabrias decir como consigues cuando no encuentra nada por lo menos sacarte un resultado parecido?
esta muy bien el desarrollo.
y perdonad por el post ya se que lleva bastante tiempo sin uso
gracias
mi web http://www.ahaugas.com
yo he desarrollado una api muy parecida... me sabrias decir como consigues cuando no encuentra nada por lo menos sacarte un resultado parecido?
esta muy bien el desarrollo.
y perdonad por el post ya se que lleva bastante tiempo sin uso
gracias
mi web http://www.ahaugas.com
#27 11 sep 12, 16:03
Hola.
Estoy probando de nuevo el servicio y vuelve a no funcionar. ¿Es algo temporal?
Estoy probando de nuevo el servicio y vuelve a no funcionar. ¿Es algo temporal?
#28 11 sep 12, 16:36
Tengo problemas con el dominio, confié en los .tk pero son una basura, ya que en el momento en el que tienen algo de popularidad te los cierran o lo venden a compañias de publicidad.
El nuevo dominio es: http://script.spaingeek.com/filmaffinity/
Y este será definitivo.
El nuevo dominio es: http://script.spaingeek.com/filmaffinity/
Y este será definitivo.
#29 12 sep 12, 15:04
http://script.spaingeek.com/filmaffinity/?d1=matrix
Acabo de probar esto, no crees que sería mejor que la crítica y el autor de la misma vayan en el mismo elemento del array?
#30 : Esto claramente es subjetivo, pero yo creo que sería mejor tener un array de criticas con dos elementos: autor y contenido.
Acabo de probar esto, no crees que sería mejor que la crítica y el autor de la misma vayan en el mismo elemento del array?
#30 : Esto claramente es subjetivo, pero yo creo que sería mejor tener un array de criticas con dos elementos: autor y contenido.
Mensaje editado 2 veces. Última edición 12 sep 12, 15:56
12
Favoritos
4