在飞行中找到两个网页的常用词

时间:2012-05-22 14:54:03

标签: html search text

我有一个物种清单:

http://megasun.bch.umontreal.ca/ogmp/projects/other/compare.html

这里有一个物种清单:

http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=3524

我想找到两页上提到的所有物种。我该怎么办? (我不介意是否要找到不涉及物种的词语。我想对一般的词语进行比较:)

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

在控制台的每个页面上,执行:

var html = document.body.innerHTML;
results = [];
html.match(/>([^<]+?)</g)               // grab all values like ">...<"
    .map(function(match) {              // look for a long words..words..words
        return match.match(/\w.*\w/);
    })
    .filter(function(match) {           // ignore empty matches
        return match!==null
    })
    .forEach(function(match) {
        var text = match[0];
        if (!text.match(/[0-9]/) &&     // ignore matches with numbers
            results.indexOf(text)==-1)  // add to results if not duplicate
            results.push(text);
    });
JSON.stringify(results);

然后做:

var page1 = JSON.parse(' /*COPY-PASTE THE RESULT OF PAGE 1*/ ');
var page2 = JSON.parse(' /*COPY-PASTE THE RESULT OF PAGE 2*/ ');
page1.map(function(s){return page2.indexOf(s)!=-1});

这是绕过浏览器限制的必要条件。

演示:

> JSON.stringify( page1.filter(function(s){return page2.indexOf(s)!=-1}) )
'["Beta vulgaris","Spinacia oleracea"]'