如何从javascript / jquery中的外部html页面中提取值

时间:2014-10-13 18:55:03

标签: javascript jquery html

我有一个链接示例this 现在我想获取此页面的源代码并提取md5哈希值,类似于

<strong>MD5:</strong> 1b061e5530d2612135b8896482e68e3c</div>
<div>

我希望从中获得值 1b061e5530d2612135b8896482e68e3c

我发出了一个GET请求,并在一个变量中得到了源代码:

$.get(link).done(function(data){
    alert(data);
});

这似乎工作正常,但我不知道如何进一步帮助我。 我搜索过但没有得到任何有用的结果。

4 个答案:

答案 0 :(得分:0)

您可以使用获取包含MD5哈希值的文本节点:

$.get(link).done(function (data) {
    var md5Node = document.evaluate('//*[@id="app_info"]/div[1]/div[2]/div[2]/div[1]/text()', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    var md5String = md5Node.textContent;
    // ...
});

更好的XPath

最好根据兄弟姐妹的价值找到MD5文本节点。 XPath看起来像

//*[text()="MD5:"]/../text()

答案 1 :(得分:0)

你可以使用好的,老式的(即/MD5:<\/strong> (.*?)<\/div>/g的第二个结果)。

var result = (/MD5:<\/strong> (.*?)<\/div>/g).exec([text])[1];

&#13;
&#13;
var regex = /MD5:<\/strong> (.*?)<\/div>/g;
var output=document.getElementById("output");
var test="<strong>MD5:</strong> 1b061e5530d2612135b8896482e68e3c</div>";
var matches = regex.exec(test);
output.innerHTML="MD5 is "+matches[1];
&#13;
<div id="output"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

您尝试获取价值的div是否有ID?如果是这样,你可以试试这样的东西

$.get(link).done(function(data){ console.log($(data).find("#idofdiv").text()); });

答案 3 :(得分:-1)

你也可以使用jQuery的.load函数,如下所示:

$('div#container').load('external-page.html div#md5');