Javascript 有没有办法过滤html文档的数据?

Javascript 有没有办法过滤html文档的数据?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我目前正在开发一个chrome扩展,它使用一个网站的html文档来提取数据,但是我需要制作一个过滤器来获得我想要的 在此尝试中,扩展获取页面的HTML并将其转换为字符串,以便可以轻松地对其进行操作: //This method gets a string and counts how many times //the word you're looking for its in the string function countWordInAString(string, word) {

我目前正在开发一个chrome扩展,它使用一个网站的html文档来提取数据,但是我需要制作一个过滤器来获得我想要的

在此尝试中,扩展获取页面的HTML并将其转换为字符串,以便可以轻松地对其进行操作:

//This method gets a string and counts how many times
//the word you're looking for its in the string
function countWordInAString(string, word) {
    return (string.match(new RegExp(word, "g")) || []).length;
}

function getOutlookData(html) {
    var unreaded = countWordInAString(html, 'no leídos');
    var readed = countWordInAString(html, 'leídos');
    var totalMails = countWordInAString(html, 'id="AQAAA1thnTQBAAAEA7R1mgAAAAA="');
    var message = totalMails + 'Mails loaded! \n Mails readed: ' + readed + '\n Mails unreaded: ' + unreaded;

    return message + '\n' + "HTML:\n" + html;
}

它在某些特定情况下有效,但对于模糊的网站(如本例中的outlook),结果是错误的。我能做些什么来改进它?

您的“单词”可能包含特殊字符。 当传递到正则表达式时,使用反斜杠对其进行编码 即

变成

id\=\"AQAAA1thnTQBAAAEA7R1mgAAAAA\=\"

您要求我们解析我们看不到的html。如果没有一个被解析的html,没有人能提供很多帮助。这是chrome标签加载的页面中的html,扩展得到了它,然后被转换成一个字符串以供灵活使用。正如第一条评论所说的,我们需要看到有问题的html,但问题很明显:处理html以分析其文本通常不起作用。您需要处理页面的
document.body.innerText
。要分析属性,需要在DOM而不是HTML上使用诸如querySelectorAll之类的DOM方法。您可以在内容脚本中完成,也可以使用DOMParser API在后台脚本中重建DOM。谢谢,我非常感谢!
id="AQAAA1thnTQBAAAEA7R1mgAAAAA="
id\=\"AQAAA1thnTQBAAAEA7R1mgAAAAA\=\"