Foros del Web » Programando para Internet » Jquery »

Extraer contenido de una web con jQuery

Estas en el tema de Extraer contenido de una web con jQuery en el foro de Jquery en Foros del Web. Hola. Necesito extraer contenido de una web a partir de su url, una etiqueta de su html y una clase. A ser posible mediante Ajax. ...
  #1 (permalink)  
Antiguo 30/10/2012, 16:47
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Extraer contenido de una web con jQuery

Hola.
Necesito extraer contenido de una web a partir de su url, una etiqueta de su html y una clase. A ser posible mediante Ajax. Para poder acoplarla a mi web
Sé seleccionar contenido a partir de una clase, es fácil, pero no sé de una url externa. También sé hacer peticiones Ajax, pero enviando y recibiendo datos en variables.

Agradecería un poco de ayuda y algo de código si es posible. Si pregunto es porque apenas encuentro información sobre este tema en concreto.

Gracias y saludos.
  #2 (permalink)  
Antiguo 31/10/2012, 07:50
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Extraer contenido de una web con jQuery

Al parecer con Ajax no se puede debido a la "política del mismo origen" --> http://es.wikipedia.org/wiki/Politica_del_mismo_origen

Entonces la pregunta sería para poder hacerlo sin Ajax. ¿Alguien puede ayudarme?
  #3 (permalink)  
Antiguo 31/10/2012, 15:07
 
Fecha de Ingreso: enero-2010
Mensajes: 19
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Extraer contenido de una web con jQuery

Hace tiempo un usuario pregunto lo mismo y lo que le sugerí fuer usar un scrapping de YUI

Código Javascript:
Ver original
  1. YUI().use('yql', function(Y){
  2. * * Y.YQL('select * from data.html.cssselect where url="http://www.forosdelweb.com/f13/como-hacer-esto-1004185/" and css="#post_message_4234006"', function(response) {
  3. * * * * var html = response.query.results.results.div.p.content;
  4. * * * * document.getElementById('muestra').innerHTML = html;
  5. * * });
  6. });

Cualquier cosa puedes verlo en acción aquí: http://jsbin.com/ovedew/1/edit
  #4 (permalink)  
Antiguo 31/10/2012, 17:12
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 4 meses
Puntos: 103
Respuesta: Extraer contenido de una web con jQuery

podes hacer un archivo en php que te otorge la respuesta
algo asi
Código PHP:
Ver original
  1. <?php
  2. $get = $_GET['url'];
  3. ?>

y le mandas por el get la url, y te muestra lo que obtiene.
a partir de ahi con javascript tenes que obtener lo que nescesitas
  #5 (permalink)  
Antiguo 31/10/2012, 17:26
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Extraer contenido de una web con jQuery

Cita:
Iniciado por chwc Ver Mensaje
podes hacer un archivo en php que te otorge la respuesta
algo asi
Código PHP:
Ver original
  1. <?php
  2. $get = $_GET['url'];
  3. ?>

y le mandas por el get la url, y te muestra lo que obtiene.
a partir de ahi con javascript tenes que obtener lo que nescesitas
Gracias, pero lo que pretendo hacer es una aplicación de cliente pura, para que funcione en el navegador sin nada en el servidor.
  #6 (permalink)  
Antiguo 31/10/2012, 17:55
 
Fecha de Ingreso: septiembre-2012
Mensajes: 60
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Extraer contenido de una web con jQuery

Cita:
Iniciado por Diego89 Ver Mensaje
Hace tiempo un usuario pregunto lo mismo y lo que le sugerí fuer usar un scrapping de YUI

Código Javascript:
Ver original
  1. YUI().use('yql', function(Y){
  2. * * Y.YQL('select * from data.html.cssselect where url="http://www.forosdelweb.com/f13/como-hacer-esto-1004185/" and css="#post_message_4234006"', function(response) {
  3. * * * * var html = response.query.results.results.div.p.content;
  4. * * * * document.getElementById('muestra').innerHTML = html;
  5. * * });
  6. });

Cualquier cosa puedes verlo en acción aquí: http://jsbin.com/ovedew/1/edit

Interesante Diego89, aunque estoy probando para seleccionar la clase 'q' de la etiqueta <p> de una página y no logro extraerlo. El html es algo así:
Código HTML:
<div>
   <p class="q">Texto</p>
</div> 
Estoy probando con tu código, pero en css=".q"

Por cierto, es curioso porque para el ejemplo que has puesto, para el texto de otros posts no funciona. Por ejemplo, probando con el id="post_message_4234036" que es el siguiente mensaje, devuelve 'undefined'

Etiquetas: ajax, contenido, html
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 09:47.