2

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

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

page.getWebURL().getParentDocid();

只给我父的文档ID,但我怎样才能找到这个页面的父?

谢谢!

4

1 回答 1

1

Crawler4J 似乎并没有以一种方便的方式使其以前访问过的 URL 可用。最好的办法可能是在您访问它们时自己将它们存储在Map<String,String>from URLs to parents 中:

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

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

List<String> path = new ArrayList<String>();
do {
  path.add(url);
  url = parentMap.get(url);
} while(url != null);
于 2013-11-28T22:14:25.950 回答