我正在开发一个基于 Web 的应用程序,它使用对 http://www.whateverorigin.org/ 的调用加载 URL 的 HTML 内容这避免了违反同源策略
url = 'http://' + document.getElementById("urlText").value
$.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent(url) + '&callback=?', function(data){
var doc = new DOMParser().parseFromString(data.contents, 'text/html');
如果我需要从这个 html 字符串中提取有意义的可见文本,有没有办法像 beautifulsoup 在 python 中那样做?我更像是 javascript 的初学者。
最佳答案
使用jQuery为了找到和iterate在适当的元素上。然后您可以决定打印什么——例如:显示可见项目的文本节点。 这是一个带有工作脚本示例的 jsfiddle:http://jsfiddle.net/w147o9f6/1/
<body>
<div id="outputTexts">OUTPUT:</div>
</body>
JavaScript:
var parser = new DOMParser();
var doc;
var meaningfulTexts = [];
$.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('https://www.facebook.com') + '&callback=?', function(data){
doc = parser.parseFromString(data.contents, "text/html");
var ELMS = $(doc).find("div, p, a, span");
ELMS.each(function(index, element) {
if(element.style.display != "none" && $(element).text() != "") {
$("#outputTexts").append('<br>'+ element.tagName + ' - '+$(element).text());
meaningfulTexts.push( $(element).text() );
}
});
});
关于javascript - 基于 Web 的应用程序 - HTML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27190366/