2010-01-23 11 views
5

Lo que se necesita es el siguiente:¿Cómo obtener información de otro sitio web desde mi página HTML?

Tengo una página web HTML y necesito acceder a otro sitio web y obtener algo de su código fuente.

Quiero correr algo así como

link = "http://www.google.com"; 
doc.querySelectorAll('#courses_menu > ul > li > a'); // Apply on the link. 

para conseguir lo que necesito del enlace y lo uso!

Sin embargo, estoy usando la barra deslizante Jetpack.

¿Tiene que hacer algo con las solicitudes HTTP?

Respuesta

1

Creo que podría extraer toda la página utilizando una solicitud de Ajax, colocar el contenido en un iframe oculto y luego manipular el DOM en el iframe. Algo así como (en este caso utilizando el framework jQuery)

<iframe id="holder" style="display: none"> 

<script type="text/javascript"> 
$("#holder").load("http://www.google.com",function() { 
    $link = $("#holder").contents().find("#courses_menu > ul > li > a"); 
}); 
</script> 
+0

¿realmente funciona? Intenté pero recibí el siguiente error: 'XMLHttpRequest no puede cargar http://www.google.com/. Origen http: // localhost: 9000 no está permitido por Access-Control-Allow-Origin. – Freewind

+1

Sí; Creo que solía ser posible, pero debido a problemas de seguridad entre sitios, creo que esto ya no se permite. También verificaría el uso de un nombre de dominio completo en lugar de localhost. Esa podría ser la causa del problema. –

0

Tenga una página que tendrá un resultado de su consulta "doc.querySelectorAll ('# courses_menu> ul> li> a');"

Agregue un IFrame en su página, establezca el src como la página que tiene el resultado anterior.

<iframe src='pagenamewhichhasresult'/>

+0

has probado esto? No creo que esto funcione debido a la misma política de origen. –

0

Puede incluir otros contenidos web en su documento HTML usando un iframe. Sin embargo, debido a la misma política original, no puede hacer que las secuencias de comandos de su dominio afecten el contenido de otro dominio. En otras palabras, no puede escribir algunos javascript para manipular el contenido de otra página web que coloca en un iframe. La secuencia de comandos también debería provenir de ese dominio.

1

recomiendo el uso de un Ajax (por ejemplo jQuery) con un proxy PHP en el mismo servidor web. El Proxy carga la página web remota y luego está disponible bajo el mismo dominio.

No se olvide de proteger el proxy contra el abuso.

Cuestiones relacionadas