2017-04-09 70 views
0

我想开发一个抓取工具来抓取youtube.com并解析元信息(标题,描述,出版商等)并将其存储到Hbase /其他存储系统中。我明白我必须编写插件来实现这一点。但我很困惑我需要为此编写哪些插件。我与这四检查 -解析并存储使用Apache Nutch

Parser 
ParserFilter 
Indexer 
IndexFilter 

要解析的YouTube页面特殊元数据信息,我是否需要写一个自定义的解析器插件或ParseFilter插件使用parse-html插件相处?

解析后,要将条目存储在Hbase /其他存储系统中,是否需要编写IndexWriter插件?通过索引,我们通常会理解Solr,ElasticSearch等中的索引。但是我不需要在任何搜索引擎中明显地进行索引。那么,如何在解析后将它们存储在某些商店中,并说Hbase呢?

在此先感谢!

回答

2

由于YouTube是一个网页,你需要写一个HtmlParseFilter它允许您访问原始HTML从服务器获得的,但目前的YouTube的JavaScript的执行JS很多,既不parse-htmlparse-tika支持代码,所以我会建议你使用protocol-selenium插件,这样你就可以将网页的渲染委托给selenium驱动程序,并返回HTML(在执行完所有JS之后)。在你编写自己的HtmlParseFilter之后,你需要编写你自己的IndexingFilter,在这种情况下,你只需要指定你想发送到后端的信息,这完全是后端不可知的,并且仅依赖于Nutch代码库(这就是为什么你需要你自己的IndexWriter)。

我假设你正在使用Nutch 1.x,在这种情况下,你需要为你的后端编写一个自定义的IndexWriter(这很简单)。如果你使用Nutch 2.x,你可以通过Apache Gora访问几个后端,但是你会缺少一些功能(比如protocol-selenium)。

+0

现在问题已经很老了,我已经做了你最近在这里提出的建议。感谢您的详细解答。 –

+1

对不起,延迟响应:) –

+0

嗨@JorgeLuis你能回答这个问题吗? http://stackoverflow.com/questions/43993032/generate-only-unfetched-urls-instead-of-scored-nutch-2-3 –