Estoy desarrollando una página que lee el código fuente de otra página y necesito extraer cierta información de esa página. Actualmente tengo el proyecto enganchando la fuente en vivo con los datos, sin embargo, no puedo descifrar cómo convertir esta cadena en un documento.
Mi razón para usar un documento es que necesito usar getElementById
, etc. para obtener el valor de estos elementos.
¿Qué he probado?
Asignando el HTML a un div invisible en mi página. Este tipo de obras, aunque no representa la cadena HTML completa y proporciona una interpretación "más corta" de esta página.
Encontrar manualmente las subcadenas. Como puede imaginar, esta es una forma horrible de hacer las cosas y proporciona resultados muy poco confiables.
Analizador DOM para convertir el documento y luego consultarlo, pero eso falla miserablemente.
Cualquier ayuda en absoluto sería apreciada seriamente.
código pertinente:
$.ajax({ method: "GET", dataType: '', crossDomain: true, xhrFields: { withCredentials: true }, success: function(res) { //shows the entire source just fine. console.log("Value of RES: " + res); bootbox.hideAll(); //shows a "truncated" copy of the source alert(res); $("#hiddendiv").html(x); var name = document.findElementById("myitem"); alert(name); },
Cree un IFRAME oculto en su documento. Luego establezca el contenido de ese IFRAME en el HTML que desea consultar. Apunte a ese IFRAME con su javascript cuando haga su consulta. Consulte ¿Cómo puedo acceder a elementos iframe con Javascript? para entender cómo.
Otra opción (probablemente mejor) es usar jQuery. jQuery le permite crear HTML, manipularlo y consultarlo en la memoria. Consultar elementos DOM en jQuery es aún más fácil que en javascript puro. Consulte: http://jquery.com/ .
//Get a jQuery object representing your HTML var $html = $( "<div><span id='label'></span></div>" ); //Query against it var $label = $html.find( "#label" ); //finds the span with and id of 'label'