0

Web サイトのコンテンツをクロールする webcrawler ( Ncrawler ) があり、データを solr にインデックス化するコードを追加しました。私の要件は、Web サイトのヘッダー、フッター、およびナビゲーション ウィンドウがインデックス作成のために solr に追加されないようにすることです。

これを行う方法はありますか?どんな助けでも本当に感謝しています。

ありがとう、アヌ

4

1 に答える 1

0

HtmlDocumentProcessorコンストラクターで filterTextRules パラメーターを持つクラスを利用できます。Dictionary<string,string>このパラメーターは、マークアップのフィルタリングに使用する開始文字列と終了文字列と共にとして渡す必要があります。

例として、html ページにヘッダーとフッターがあり、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 ソースを参照してください。

于 2013-04-16T12:27:49.343 に答える