scraper:区分有意义的文本和无意义的项目,hadoop

mbyulnm0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(340)

我正试图在apachenutch中构建一个爬虫和scraper,以查找包含一个部分的所有页面,该部分讨论某个特定的单词主题(例如“election”、“elections”、“vote”等)。
一旦我爬网了,nutch会清除html中的停止词和标签,但它不会去掉菜单上的声音(在网站的每个页面上)。因此,当你查找所有关于选举的页面时,你可能会检索到整个网站,因为它的菜单中有“选举”一词,因此在每个页面中都有。
我想知道是否有技术,分析多个网页的网站,以了解什么是一个网页的主要模板,存在。有用的论文和/或实现/库。
我在考虑创建某种hadoop作业,分析多个页面之间的相似性以提取模板。但同一个网站可能有多个模板,所以很难想出一个有效的方法来做到这一点。
例如
网页1:

MENU HOME VOTE ELECTION NEWS

meaningful text... elections ....

第2页:

MENU HOME VOTE ELECTION NEWS

meaningful text... talking about swimming pools ....
vwhgwdsa

vwhgwdsa1#

您没有提到您使用的是nutch(1.x/2.x)的哪个分支,但目前我可以想到几种方法:
看一看nutch-585,如果您没有对许多不同的站点进行爬网,并且可以指定要从索引内容中排除哪些html内容节点,那么nutch-585将非常有用。
如果您使用的是不同的站点,并且前面的方法不可行,那么可以看看nutch-961,它使用apachetika内部的样板文件特性来猜测html内容中的文本有什么意义。这个库使用了一些算法,并提供了几个提取器,您可以尝试一下,看看什么适合您。以我的经验来看,我在新闻网站上遇到过一些问题,这些网站有很多评论,有些评论最终与主要文章内容一起被单独编入索引,但这毕竟是个小问题。在任何情况下,这种方法都可以很好地适用于许多情况。
另外,您还可以看看nutch-1870,它允许您指定xpath表达式来将网页的某些特定部分提取为单独的字段,在solr中使用正确的boost参数可以提高精度。

相关问题