我要求解析远程html页面(例如:www.mywesite.com/home)如何获取此网站的html页面源代码以及如何解析此页面
html就像这样
<html>
<body>
<div class="my-class1">
<a href="home/link?id=1">hello</a>
</div>
<div class="my-class1">
<a href="home/link?id=2">hey</a>
</div>
<div class="my-class1">
<a href="home/link?id=3">bye</a>
</div>
</body>
</html>
我希望输出为
hello
hey
bye
我没有使用任何服务器端技术(如java,.net)我只想使用java脚本来实现这个目标
是否可以使用Pure javaScript或任何其他jQuery插件解析远程html页面
提前致谢
答案 0 :(得分:2)
普通浏览器javascript无法从任何服务器访问远程页面的内容,除了它自己的内容。
你可以:
在您自己的服务器上有一个合作脚本来获取远程内容
通过远程服务器的协作,您可以使用适当的CORS(http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)安排访问内容。
再次与远程服务器合作,如果它通过javascript使其内容可用,您可以通过创建内联脚本元素来访问它。 “JSONP”就是这种方法的一个例子。
如果您编写浏览器插件或插件 - 对于允许使用javascript编写此类内容的浏览器 - 那么您不会以相同的方式受到浏览器安全模型的约束。
答案 1 :(得分:-2)
假设origin
已修复等,这是我使用的方法:
// get body part of html txt = txt.substr( txt.indexOf('<body>')+6 ); txt = txt.substr( 0, txt.indexof('</body>')-1 ); // stick body into div var div = document.createElement('div'); div.innerHTML = txt; // extract textContent from each element (or something more interesting) Array.prototype.slice( div.querySelectorAll('*') ).forEach( function(el) { if( el.textContent ) console.log( el.textContent ); });