Javascript 基于Web的应用程序&HTML解析

Javascript 基于Web的应用程序&HTML解析,javascript,python,html,parsing,Javascript,Python,Html,Parsing,我正在开发一个基于web的应用程序,它通过调用加载URL的HTML内容,从而避免违反同源策略 url = 'http://' + document.getElementById("urlText").value $.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent(url) + '&callback=?', function(data){ var doc = new DOMParser().parseFro

我正在开发一个基于web的应用程序,它通过调用加载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的初学者

看起来这就是你需要的?下面的代码使用whateverorigin.org网站解析google.nl并将其添加到div中。如果没有,请尝试解释您还需要什么

jQuery:

<div class="result"></div>
$(文档).ready(函数(){
$.getJSON('http://whateverorigin.org/get?url=“+encodeURIComponent('http://www.google.nl“)+”&回调=?”,函数(数据){
$('.result').html(data.contents);
});
});

HTML:

<div class="result"></div>

示例:

用于查找和覆盖适当的元素。然后您可以决定打印什么-例如:显示可见项的文本节点。 下面是一个JSFIDLE和一个工作脚本示例:


输出:
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() );
        }
    });
});
var parser=new DOMParser();
var-doc;
var MeaningfulText=[];
$.getJSON('http://whateverorigin.org/get?url=“+encodeURIComponent('https://www.facebook.com“)+”&回调=?”,函数(数据){
doc=parser.parseFromString(data.contents,“text/html”);
var ELMS=$(doc.find(“div,p,a,span”);
ELMS.each(函数(索引、元素){
如果(element.style.display!=“无”&&&$(element.text()!=”){
$(“#outputText”).append('
'+element.tagName+'-'+$(element.text()); push($(元素).text()); } }); });
非常感谢Jeffrey。我需要有意义的文本信息作为原始字符串。我碰巧看到css样式信息是有意义文本的一部分。有什么方法可以删除它们吗?我对照facebook和其他一些网站检查了我的代码,效果非常好。当我对照谷歌查看时,它显示了那些CSS代码(说它们位于
span
标签中)。我不知道这是我的代码还是谷歌网站的问题。
google.com
是您打算使用的网站吗?基于web的应用程序将从任何网站获取可见文本$(doc)查找(“p,a”);我做了这个改变。这似乎效果更好。