Javascript 是否获取页面上的所有可见文本?

Javascript 是否获取页面上的所有可见文本?,javascript,html,web-scraping,Javascript,Html,Web Scraping,我想获取页面上所有可见的文本。可见文本定义为用户可以使用Ctrl-F找到的文本 建议使用document.body.innerText,但这包括选项中的不可见文本 是否有一个很好的解决方案可以只获取页面上的可见文本(Ctrl-F功能)?这对您有用吗 拿到尸体标签 将所有标签放入主体内 迭代标记并获取可见元素的元素 function isHidden(el) { var style = window.getComputedStyle(el); return ((style

我想获取页面上所有可见的文本。可见文本定义为用户可以使用Ctrl-F找到的文本

建议使用
document.body.innerText
,但这包括
选项中的不可见文本


是否有一个很好的解决方案可以只获取页面上的可见文本(Ctrl-F功能)?

这对您有用吗

  • 拿到尸体标签

  • 将所有标签放入主体内

  • 迭代标记并获取可见元素的元素

     function isHidden(el) {
         var style = window.getComputedStyle(el);
         return ((style.display === 'none') || (style.visibility === 'hidden'))
     }
    
     // get the body tag
     var body = document.querySelector('body');
    
     // get all tags inside body
     var allTags = body.getElementsByTagName('*');
    
    
     //console.log(allTags);
    
    
     for (var i = 0, max = allTags.length; i < max; i++) {
         if (isHidden(allTags[i])){
             // hidden
         }
         else { 
             console.log(allTags[i].innerText);
         }
     }
    
    函数isHidden(el){
    var style=window.getComputedStyle(el);
    返回((style.display=='none')| |(style.visibility=='hidden'))
    }
    //拿到尸体标签
    var body=document.querySelector('body');
    //将所有标签放入主体内
    var allTags=body.getElementsByTagName('*');
    //console.log(所有标签);
    对于(变量i=0,max=allTags.length;i

  • 这对你有用吗

  • 拿到尸体标签

  • 将所有标签放入主体内

  • 迭代标记并获取可见元素的元素

     function isHidden(el) {
         var style = window.getComputedStyle(el);
         return ((style.display === 'none') || (style.visibility === 'hidden'))
     }
    
     // get the body tag
     var body = document.querySelector('body');
    
     // get all tags inside body
     var allTags = body.getElementsByTagName('*');
    
    
     //console.log(allTags);
    
    
     for (var i = 0, max = allTags.length; i < max; i++) {
         if (isHidden(allTags[i])){
             // hidden
         }
         else { 
             console.log(allTags[i].innerText);
         }
     }
    
    函数isHidden(el){
    var style=window.getComputedStyle(el);
    返回((style.display=='none')| |(style.visibility=='hidden'))
    }
    //拿到尸体标签
    var body=document.querySelector('body');
    //将所有标签放入主体内
    var allTags=body.getElementsByTagName('*');
    //console.log(所有标签);
    对于(变量i=0,max=allTags.length;i

  • 这行吗-检查css显示!=无和不透明度!=0?我目前正在使用
    innerText
    解决方案,但我想我可以手动迭代所有DOM元素。您是否使用jQuery或任何其他库?这是否有效-检查css显示!=无和不透明度!=0?我目前正在使用
    innerText
    解决方案,但我想我可以手动迭代所有DOM元素。您使用的是jQuery还是其他库?