Foros del Web » Programando para Internet » Javascript »

Obtener datos de otra web

Estas en el tema de Obtener datos de otra web en el foro de Javascript en Foros del Web. Hola, He visto que muchas webs son capaces de obtener datos de otras webs con javascript. Creo que se llama json, pero no consigo aplicarlo. ...
  #1 (permalink)  
Antiguo 23/03/2012, 13:43
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Obtener datos de otra web

Hola,

He visto que muchas webs son capaces de obtener datos de otras webs con javascript. Creo que se llama json, pero no consigo aplicarlo.

Cómo funciona? Me pueden dejar un ejemplo?


Muchas gracias, un saludo ;)
__________________
Shaito Hiraga - Diseñador CSS
  #2 (permalink)  
Antiguo 23/03/2012, 13:49
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Obtener datos de otra web

Buscá en google jsonp
Ej:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin título</title>
<
script type="text/javascript">
function 
getScript(url,callback){
            var 
js document.createElement('script');
            
js.src url;
            if(
callback){
                if(
js.addEventListener){
                    
js.addEventListener('load',callback,false);
                }else{
                    
js.onreadystatechange=function(){
                        if(
js.readyState=='complete' || js.readyState=='loaded'){
                            
callback();
                        }
                    }
                }
            }
            var 
html document.documentElement;
            
html.insertBefore(jshtml.lastChild);
}
function 
escribir(que){document.body.innerHTML='<img src="'+que[0].user.profile_image_url+'">'+que[0].text;}
onload=function(){
    
getScript('https://twitter.com/status/user_timeline/panino5001.json?count=1&callback=escribir',0);
}
</script>

</head>

<body>
</body>
</html> 

Última edición por Panino5001; 23/03/2012 a las 14:15
  #3 (permalink)  
Antiguo 23/03/2012, 19:37
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Respuesta: Obtener datos de otra web

Y eso se puede usar para una web que no tenga preparada una estructura json?
__________________
Shaito Hiraga - Diseñador CSS
  #4 (permalink)  
Antiguo 23/03/2012, 20:12
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener datos de otra web

No, acá lo tenes bastante bien explicado

http://web.ontuts.com/tutoriales/jso...ntre-dominios/
Que sería exactamente lo que querés hacer?

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 24/03/2012, 00:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Obtener datos de otra web

Hola:

Si la otra web dispone de rss, podrías leerlo con simplexml de php (no sé en otro lenguaje), claro que ya sería estructura xml y no json...

No lo he probado con ajax.responseXML, pero supongo que podría funcionar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 24/03/2012, 08:33
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Respuesta: Obtener datos de otra web

Pues lo que me gustaría, sería sacar ciertos elementos de otra web.
Es decir, es un CMS creado y cada día actualiza, por eso no tiene xml ni parecido.

Es sacar ese elemento para verlo en mi web.


Gracias
__________________
Shaito Hiraga - Diseñador CSS
  #7 (permalink)  
Antiguo 24/03/2012, 12:41
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener datos de otra web

con php podés intentar otra solución, pero asi como con jsonp y simplexml requieren de datos enviados con una estructura determinada, también aquí vas a necesitar de ciertos valores constantes para obtener los datos, pero es bastante más flexible.

Ejemplo
Código PHP:
Ver original
  1. <?php
  2. // Para usar file_get_contents() con url externas es neceario que
  3. // allow_url_fopen y allow_url_include estén habilitados en php.ini
  4.  
  5. // obtenemos el contenido del archivo
  6. $str=file_get_contents("http://emprear.com/");
  7. // buscamos un elemento para construir la expresióm regular que nos permita separar el contenido
  8. // y aplicarlo al preg_split() en este caso el cierre </p>
  9. $claves = preg_split("/\<\/p\>/", "$str");
  10. // el indice 0 de $claves será todo el html hasta el cierre de </p>, excluido
  11. $htmlx = $claves[0];
  12. // De esta forma $htmlx contendra el html previo a <p> + el contenido del <p>
  13. // y al finalizar este contenido estará en blanco
  14. // Volvemos a efectuar el procedimiento pero esta vez con la apertura del <p>
  15. $claves2 = preg_split("/\<p\>/", "$htmlx");
  16. // Como esta vez nos interesa lo que sigue a <p> tomamos el índice 1 de $claves2
  17. $htmlx2 = $claves2[1];
  18. // imprimimos lo que nos queda
  19. echo $htmlx2;
  20. ?>

La página que abrimos en el ejemplo, es muy básica, y es muy fácil también identificar el contenido que queremos extraer, en páginas más complejas, hay que buscar expresiones regulares más finas y a veces realizar la operación mas veces.
También puede ser útil limpiar el contenido previamente utilizando strip_tags().
Bueno, es cuestión de ir probando. Seguramente con curl() también se pueda hacer algo, pero nunca lo probé

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 24/03/2012, 16:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Obtener datos de otra web

Cita:
Iniciado por Shaito Ver Mensaje
Pues lo que me gustaría, sería sacar ciertos elementos de otra web.
Me huele, como suele decirse, a chamusquina...

Si quieres copiar cosas de otros, deberías contactar con el dueño de esa otra web, al menos para comunicárselo...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 24/03/2012, 16:46
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener datos de otra web

Cita:
Iniciado por caricatos Ver Mensaje
Me huele, como suele decirse, a chamusquina...

Si quieres copiar cosas de otros, deberías contactar con el dueño de esa otra web, al menos para comunicárselo...

Saludos
Permitime darle el beneficio de la duda



Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 26/03/2012, 14:53
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Respuesta: Obtener datos de otra web

No es para nada malo, es para comprobar los enlaces.

Si el enlace no existe en la web, salta un error. La cosa es coger ese div y ver su contenido desde mi web.


Un saludo y gracias emprear por defenderme ;)
__________________
Shaito Hiraga - Diseñador CSS
  #11 (permalink)  
Antiguo 26/03/2012, 14:59
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener datos de otra web

Cita:
Iniciado por Shaito Ver Mensaje
No es para nada malo, es para comprobar los enlaces.

Si el enlace no existe en la web, salta un error. La cosa es coger ese div y ver su contenido desde mi web.


Un saludo y gracias emprear por defenderme ;)
De nada colega, pero no lo tomes como una defensa, fué solo una observación que me parece justa....
Son tantos los casos en que los usuarios quieren hacer exactamente lo que indicó @Caricatos, que uno se cura de espanto. Pero como ya dije, existe el beneficio de la duda.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: funcion, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.