1

我正在使用 Nutch 抓取网站,目前正在编写一个插件。Jaunt 1.0.0.1 用于解析 HTML。例如,我有一排

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

哪个得到和错误,当在页面上时 no <div class=info_books_item>。目前我正在查看 Jaunt JavaDocs,但不知道如何检查,是否有这样的元素。

4

1 回答 1

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){
}
于 2015-07-18T17:00:55.877 回答