2013-11-28 2 views
2

im new для 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(); 
    } 
} 

Это только дает мне строку родительского URL.

page.getWebURL().getParentDocid(); 

только получает мне идентификатор документа родителя, но как я могу узнать родителя этой страницы?

Спасибо!

ответ

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); 
+0

Спасибо! Прекрасно работает – IDontKnow

Смежные вопросы