Heritrix-3.2.0 を使用して ajax ベースの Web サイトをクロールすることはできますか?
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 に答える