3

私は現在、nutch1.0用のカスタムプラグインを作成しようとしています。このプラグインは、htmlデータを解析し、ドキュメントから関連情報を除外することになっています。基本的なプラグインが機能しています。これはHtmlParserResultオブジェクトを拡張し、解析を実行するたびに実行されます。

私の問題は現在2つの問題に直面しています。

  1. ナッチ構文解析のワークフロー/パイプラインが十分に理解されていません。これに関する情報は、nutchサイトにはありません。

  2. DOM解析がどのように行われるのかわかりません。また、NutchにDOMオブジェクトのセットがあり、HtmlParserプラグインがいくつかのDOM解析を行うことがわかります。それでも、これがどのように最適に行われるのかわかりません。

4

1 に答える 1

1

過去の作品で、ちょっとした HTML 解析プラグインを作成したことを覚えています。正確にどのように行ったかはわかりませんが、基本的なポイントは次のとおりです。私たちは次のことをしたかったのです:

  1. HTML ページを解析しますが、実際の //html/head/title ではなく、条件付きで H1 タグまたは特定のクラスのタグをページ タイトルとして使用します
  2. このページには、ときどき表示される特別なデータがいくつかありました (つまり、どのタブが選択されたかで、これが小売顧客、銀行顧客、法人顧客のいずれであるかがわかります)。

私がしたことは、html-parse プラグイン クラスを見つけて (実際のクラス名を見つけるのに苦労しています)、それを拡張することでした。次に、解析関数をオーバーライドします。新しい関数は関数を呼び出す必要がありsuper、DOM ツリーをたどって探している特別なデータを見つけることができます。私の場合、より良いタイトルを探して、super関数が思いついた値をオーバーライドします。

2番目の質問については、あなたが何を求めているのかわかりません。DOM が適切に形成されていない場合に何が起こるかを尋ねていると思いますか? Nutch コード (http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.nutch/nutch/1.3/) を掘り下げて、解析がどのように行われるかを調べます (私はライブラリを使用してそれを行うことを確認してください)。それは、物事が貪欲であるかどうか、または何であるかについてもっと教えてくれるはずです.

ご不明な点がございましたら、大声でお問い合わせください。

于 2011-09-26T17:05:54.810 に答える