1
是否有可能使用Heritrix-3.2.0来爬取基于Ajax的网站?Heritrix3.2.0能够抓取基于Ajax的网站吗?
是否有可能使用Heritrix-3.2.0来爬取基于Ajax的网站?Heritrix3.2.0能够抓取基于Ajax的网站吗?
如果你打算做一个ajax网站的“副本”,显然没有。
如果您想要通过分析网站内容来获取一些数据,您可以使用提取器来自定义搜寻器,该提取器将确定要遵循哪些URL。在大多数网站上,您可以轻松地猜出对您的案例感兴趣的网址,而无需解释JavaScript。然后,ajax回调将被抓取并提供给处理器链。默认情况下,这会将ajax回调答案存储在归档文件中。
制作自己的提取看起来像这样:
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目录下,并插入一个bean在fetchProcessors链指的MyExtractor:基本上,复制extractorHtml线爬行作业cxml文件。