我是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,但是如何找到该页面的父级?
谢谢!
答案 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);