javascript - 基于 Web 的应用程序 - HTML 解析

标签 javascript python html parsing

我正在开发一个基于 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/

相关文章:

asp.net - 从网页打印条形码标签

javascript - 如何在 AngularJS 中正确使用 HTTP.GET?具体来说,对于外部 API 调用?

python - Django数据库规划-时序数据

html - 如何在CSS中使用 "float:right"元素的最小宽度?

html - 在 css 中使用 fit-content 自动调整宽度

python - django allauth 电子邮件登录 - 总是错误

JavaScript、JQuery、将 HTML 元素下载为图像( Canvas 到图像)

javascript - 单击日期选择器外部的已知容器时,有没有一种方法可以防止剑道日期选择器日历弹出窗口关闭?

javascript - 如何隐藏/显示数据表中的行?

python - 带有 VS2010 的 Django 在运行时给我 "ImportError: No module named django.core.management"