2015-07-17 4 views
1

Я использую Nutch для сканирования веб-сайта и в настоящее время написания плагина. Jaunt 1.0.0.1 используется для анализа HTML. Например, у меня есть рядJaunt - проверьте, есть ли определенный элемент

Element infoBooksItem = body.findFirst("<div class=info_books_item>"); 

который получает и ошибок, когда на странице не <div class=info_books_item>. В настоящее время я смотрю Jaunt JavaDocs, но не могу понять, как проверить, есть ли такой элемент или нет.

ответ

1

Вы правы, что метод findFirst генерирует исключение, если элемент не найден. Вы можете использовать блок try-catch, чтобы поймать NotFound Exception в коде, и взять его оттуда, или если вы можете написать вспомогательный метод, который не бросает исключение (если вам просто нужно булево детектор)

public boolean has(Element element, String target){ 
    try{ 
    element.findFirst(target); 
    return true; 
    } 
    catch(NotFound n){ 
    return false; 
    } 
} 

в качестве альтернативы, вы можете использовать метод findEvery, который не бросает исключение, как логический детектор:

if(body.findEvery("<div class=info_books_item>").size() > 0){ 
} 
Смежные вопросы