如何防止Solr添加页眉和页脚?

时间:2013-04-16 11:37:26

标签: c#-4.0 solr web-crawler

我有一个抓取网站内容的网络抓取工具(Ncrawler),我添加了代码来索引数据到solr。我的要求是避免网站的页眉,页脚和导航窗格添加到solr进行索引。

有没有办法做到这一点?任何帮助都会非常感激。

谢谢, ANU

1 个答案:

答案 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