是否有可能读取另一个网址的dom结构?

时间:2012-05-21 19:35:19

标签: javascript

显然修改它是不可能的。

但你认为阅读它应该不是问题吗?

如果我在某人的系统上运行我的.js并且我想分析另一个URL的DOM,客户端,有没有办法做到这一点?

像拉标题标签或拉动网址一样简单...可能会将网站加载到iframe中来完成此操作?

4 个答案:

答案 0 :(得分:5)

您可以使用xmlhttp

执行此操作
function getSourceAsDOM(url)
{
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET",url,false);
    xmlhttp.send();
    parser=new DOMParser();
    return parser.parseFromString(xmlhttp.responseText,"text/html");      
}

答案 1 :(得分:4)

如果我的问题是对的,

使用yql,

的跨域示例
var url = 'xyz.com'; // website you want to scrape
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&format=json&callback=?';  
$.getJSON(yql,function(data){
    if (data.results[0]){  
        console.log(data = data.results[0].replace(/<script[^>]*>[\s\S]*?<\/script>/gi, ''));  // The scraped data (the whole webpage)
    }
});

参考: How can i get Equivalent method of HttpwebRequest in javascript

答案 2 :(得分:1)

如果域名不匹配,由于安全例外,您将无法执行此操作。但是,如果您控制其他域,则应研究添加跨域文件以允许通过javascript访问。

答案 3 :(得分:1)

您可以使用AJAX GET请求获取html源代码。那么您可以在html代码中搜索或将其分配给iframe /...