crawler4j获取完整的父列表



im是爬网程序4j的新手。我爬了一个网站到一定的深度,找到了我搜索的内容。我现在想做的是追溯我的脚步,找出我是如何登上这一页的。我需要一个链接列表,这些链接将我引导到我要查找的内容所在的页面。

我的尝试是改变爬虫中的访问方法

@Override
public void visit(Page page) {
  String url = page.getWebURL().getURL();
  // condition for content found
  boolean contentFound = false; 
  // compute 'content found' here
  if (contentFound) {
    System.out.println(page.getWebURL().getParentUrl());
    getMyController().shutdown();
  }
}

这只会给我一个父url的字符串。

page.getWebURL().getParentDocid();

只获取父级的文档id,但如何查找此页面的父级?

谢谢!

Crawler4J似乎没有以方便的方式提供它以前访问过的URL。最好的做法可能是在访问它们时将它们存储在从URL到父母的Map<String,String>中:

parentMap.put(url, page.getWebURL().getParentUrl());

然后,为了找到完整的路径,你可以沿着地图条目一个接一个地追踪你的路,例如:

List<String> path = new ArrayList<String>();
do {
  path.add(url);
  url = parentMap.get(url);
} while(url != null);

相关内容

  • 没有找到相关文章

最新更新