crawler4j获取完整的父列表

时间:2013-11-28 21:36:54

标签: java crawler4j

我是crawler4j的新手。 我抓了一个网站到一定的深度,找到了我搜索的内容。 我现在要做的是追溯我的步骤,并了解我是如何进入这个页面的。 我需要一个链接列表,这些链接引导我进入我正在寻找的内容的页面。

我的尝试是更改抓取工具中的访问方法

@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();
  }
}

这只给我一个父网址的字符串。

page.getWebURL().getParentDocid();

只获取父级的文档ID,但是如何找到该页面的父级?

谢谢!

1 个答案:

答案 0 :(得分:1)

Crawler4J似乎没有以方便的方式使之前访问过的URL可用。最好的办法是自己存储它们,当你从Map<String,String>访问它们时,从URL到父母:

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

然后,要找到完整路径,您可以逐个沿着地图条目追溯,例如:

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