1

Web ページをクロールするための独自の Nutch プラグインを作成しようとしています。問題は、Web ページなどに特別なタグがあるかどうかを識別する必要があることです。Document.getElementsByTagName("foo") を使用してこれが可能であるという公式ドキュメントのメモがありますが、これは私にとってはうまくいきません。何か考えはありますか?

2 番目の質問は、上記のタグを識別した場合、タグが識別されたこの Web ページから他のタグを取得したいということです...ある時点でクロールされる Web ページの完全なソース コードを保存する方法はありますか?

ありがとう、ジャン。

4

1 に答える 1

3

HTML タグに基づいてコンテンツを抽出したい場合は、xpath-filter プラグインを見ることができます: http://www.atlantbh.com/precise-data-extraction-with-apache-nutch/ xpath クエリを書くことができます。プラグインで構成して、必要な情報を抽出します。

もう 1 つのオプションは、(現在行っているように) プラグインを作成し、HTML/XML パーサーを使用して情報を取得することです。特定の div から一部のコンテンツを抽出する必要があるときに行ったことは次のとおりです。

  @Override
  public NutchDocument filter(NutchDocument doc, Parse parse, Text url, CrawlDatum datum, Inlinks inlinks) throws IndexingException {

        //LOG.info("filter init: ");
        Metadata metadata = parse.getData().getParseMeta();
        String fullContent = metadata.get("fullcontent");

        Document document = Jsoup.parse(fullContent); 
        Element contentwrapper = document.select("div#content").first();

        //LOG.info("fullcontent");
        //LOG.info(contentwrapper);


        // Add field
        doc.add("contentwrapper", contentwrapper.text());

        return doc;
  }
于 2013-04-01T12:27:29.390 に答える