Прогулка - проверьте, есть ли определенный элемент

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

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

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

1 ответ

Решение

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

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){
}
Другие вопросы по тегам