我正在尝试开发一个爬虫来爬行 youtube.com
并解析元信息(标题、描述、发布者等)并将其存储到hbase/其他存储系统中。我明白我必须编写插件来实现这一点。但是我不知道我需要为这个写什么插件。我用这四个来检查-
Parser
ParserFilter
Indexer
IndexFilter
要解析youtube页面的特定元数据信息,我是否需要编写自定义解析器插件或parsefilter插件以及使用 parse-html
插件?
解析之后,要将条目存储在hbase/其他存储系统中,是否需要编写indexwriter插件?通过索引,我们通常理解solr、elasticsearch等中的索引,但我显然不需要在任何搜索引擎中索引。那么,在解析之后如何将它们存储在某个存储中(比如hbase)?
提前谢谢!
2条答案
按热度按时间5w9g7ksd1#
因为youtube是一个网页,你需要写一个
HtmlParseFilter
它允许您访问从服务器获取的原始html,但目前youtube上有很多javascript,两者都没有parse-html
或者parse-tika
支持执行js代码,所以我建议您使用协议selenium插件,这样您就可以将网页的呈现委托给selenium驱动程序,并获取html(在执行完所有js之后)。在你写完你自己的之后HtmlParseFilter
你得自己写IndexingFilter
,在这种情况下,您只需要指定要发送到后端的信息,这完全不受后端的影响,并且只依赖于nutch代码库(这就是为什么您需要自己的代码库)IndexWriter
).我假设您使用的是nutch1.x,在这种情况下,是的,您需要编写一个自定义
IndexWriter
对于您的后端(这是相当容易的)。如果您使用nutch2.x,您将可以通过apachegora访问多个后端,但是您将缺少一些特性(比如协议selenium)。zc0qhyus2#
我认为你应该使用类似crawler4j的东西来达到你的目的。
当您想进行更广泛的搜索或想将数据直接索引到solr/es中时,nutch的真正威力就被利用了。但既然你只想下载每个url的数据,我就完全支持crawler4j。它更容易设置,不需要复杂的配置。