Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/12/2010, 14:51
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Duda novato: leer contenido web externa

Cita:
Iniciado por coke_135 Ver Mensaje
Hola a todos,

estoy empezando con AJAX poco a poco y voy aprendiendo cosas simples, envío de fomrularios y cosas así.

Me apetece aprender a hacer algo que creo que es posible con AJAX.

Me gustaría que me deis indicaciones (donde buscar, qué buscar exactamente, cómo se llamo lo quiero hacer...) para aprender a leer datos de una web externa a mi sitio web y poder usarlos en mi página.

Por ejemplo, tengo una web A y una web B externa. En la web ha tengo un indicador en rojo que cuando la web B actualiza algún dato se pone en verde. O si la web B publica un nuevo artículo, leo el título y lo muestro en A (es solo un ejemplo, podría hacerlo con RSS).

¿Se haría "generando" un XML de la web B? ¿Leyendo su código HTML? ¿Podría usar jQuery para acceder a esos elementos de la web externa para leer contenido de etiquetas en mi web?

Gracias y perdonad si es un tema muy explicado. He buscado algo pero no consigo dar con un sitio donde explique tranquilamente como hacer todo esto.

¡Un saludo!
Ajax no es la "grasa de culebra" (regionalismo peruano) que todo lo cura. Sirve para dar más interactividad a una web. En este caso no hace falta Ajax, solamente PHP. Bien, como hacer?

En primer lugar no se puede hacer que cuando se actualice la web que sirve como fuente automáticamente se coja esa última actualización y se guarde en la base de datos propia. Por qué? porque no es tu web para que pongas un código que te indica cuando se ha actualizado. Lo que se puede hacer es revisar esa web periódicamente y comprobar si el contenido es nuevo o no.

Cómo hacerlo? en primer lugar requiere conocimiento de PHP, dentro de PHP saber CURL para obtener el contenido, puedes buscar "emular navegador con CURL" y va a aparecer una función en este mismo foro. OK, una vez obtenido debes procesarlo, en este caso obtener estructuradamente la información. O sea, el título, las categorías si hay, y el contenido en si. Eso se hace con el API DOM de PHP. Luego pues lo guardas en tu base de datos. Para cada web fuente se requiere un distinto código que obtenga los datos estructuradamente.

Por último se debe hacer que eso se repita periódicamente, talvez algún desesperado querrá que este proceso se repita automáticamente cada hora, yo recomendaría que sea cada día. Para eso simplemente se programaría un cron job que ejecute el archivo PHP donde se encuentra ese código. Una cosa que se me está pasando por alto es el hecho de que cada artículo que se quiera guardar en la base de datos debe antes ser chequeado para ver si ya existe. Bueno, eso es lógico.

Bien, eso sería todo. Realmente no es tan difícil, pero es necesario saber varias cosas. Suerte!