我有一个抓取网站内容的网络抓取工具(Ncrawler),我添加了代码来索引数据到solr。我的要求是避免网站的页眉,页脚和导航窗格添加到solr进行索引。
有没有办法做到这一点?任何帮助都会非常感激。
谢谢, ANU
答案 0 :(得分:0)
您可以利用构造函数上具有filterTextRules参数的HtmlDocumentProcessor
类。此参数需要作为Dictionary<string,string>
传递,其中包含用于过滤标记的起始和结束字符串。
举个例子,假设您的html页面中有一个页眉和页脚,它们的结构如下所示:
<!-- Begin Header -->
all header markup is here
<!-- End Header -->
<!-- Begin Footer -->
all footer markup is here
<!-- End Footer -->
在这种情况下,您可以按如下方式初始化管道中的HtmlDocumentProcessor:
var pipelines = new IPipelineStep[]
{
new HtmlDocumentProcessor(
new Dictionary<string, string>
{
{"<!--Begin Header", "<!--End Header"},
{"<!--Begin Footer", "<!--End Footer"},
},
null),
new PdfIFilterProcessor(),
new TextDocumentProcessor(),
};
using (var crawler = new NCrawler.Crawler(new Uri("http://ncrawler.codeplex.com"),
pipelines))
{
//Processing here
}
希望这会有所帮助。有关filterTextRules参数及其工作原理的更多详细信息,请参阅HtmlDocumentProcessor source。