2

Heritrix-3.2.0 を使用して ajax ベースの Web サイトをクロールすることはできますか?

4

1 に答える 1

1

ajax Web サイトの「コピー」を作成するつもりなら、明らかにノーです。

Web サイトのコンテンツを分析してデータを取得したい場合は、たどる URL を決定する Extractor を使用してクローラーをカスタマイズできます。ほとんどの Web サイトでは、JavaScript を解釈しなくても、自分のケースに適した URL を簡単に推測できます。次に、ajax コールバックがクロールされ、プロセッサ チェーンに渡されます。デフォルトでは、これにより ajax コールバックの回答がアーカイブ ファイルに保存されます。

独自の Extractor を作成すると、次のようになります。

    import org.archive.modules.extractor.ContentExtractor;
    import org.archive.modules.extractor.LinkContext;
    import org.archive.modules.extractor.Hop;
    import org.archive.io.ReplayCharSequence;
    import org.archive.modules.CrawlURI;

    public class MyExtractor extends ContentExtractor {
    @Override
    protected boolean shouldExtract(CrawlURI uri) {
        return true;
    }

    @Override
    protected boolean innerExtract(CrawlURI curi) {
        try {
            ReplayCharSequence cs = curi.getRecorder().getContentReplayCharSequence();
            // ... analyse the page content cs as a CharSequence ...

            // decide you want to crawl some page with url [uri] :
            addOutlink( curi, uri, LinkContext.NAVLINK_MISC, Hop.NAVLINK );
    }

コンパイルし、jar ファイルを heritrix/lib ディレクトリに置き、MyExtractor を参照する Bean を fetchProcessors チェーンに挿入します。基本的には、クロール ジョブの cxml ファイルで extractorHtml 行を複製します。

于 2015-04-07T14:14:34.027 に答える