0

Nutch 用の独自の HTML パーサー プラグインを作成したいと考えています。特定の xpath にのみ該当するアウトリンクを生成することで、集中的なクロールを行っています。私の使用例では、現在のクロールの深さに応じて、html ページからさまざまなデータを取得したいと考えています。したがって、解析している各コンテンツの HtmlParser プラグインの現在の深さを知る必要があります。

Nutchで可能ですか?CrawlDatum には、crawl_depth 情報がありません。情報のマップを別のデータ構造にすることを考えていました。誰かがより良いアイデアを持っていますか?

ありがとう

4

2 に答える 2

2

Crawl.java には NutchConfiguration オブジェクトがあります。このオブジェクトは、すべてのコンポーネントの初期化中に渡されます。新しい Fetcher を作成する前に、crawl-depth のプロパティを設定します。

conf.setInt("crawl.depth", i+1);
new Fetcher(conf).fetch(segs[0], threads,
          org.apache.nutch.fetcher.Fetcher.isParsing(conf));  // fetch it

HtmlParser プラグインは、次のようにアクセスできます。

LOG.info("Current depth: " + getConf().getInt("crawl.depth", -1));

これにより、map-reduce を壊す必要はありません。ありがとうネイン

于 2010-08-23T11:18:58.807 に答える
0

Nutchの場合、「depth」は、連続して実行される生成/フェッチ/更新サイクルの数を表します。たとえば、深さ4にいる場合は、4番目のサイクルにいることを意味します。深さ10を超えないようにする場合は、10サイクル後に停止することを意味します。

各サイクル内で、その前に実行されるサイクルの数または前のサイクル(「深さ」)は不明です。その情報は保持されません。

独自のバージョンのCrawl.javaを使用している場合は、現在の「深さ」を追跡し、その情報をHTMLパーサープラグインに渡すことができます。

于 2010-08-20T13:12:06.303 に答える