Jaunt - 检查是否有特定元素
Jaunt - check if there is specific element
我正在使用 Nutch 抓取网站,目前正在编写一个插件。 Jaunt 1.0.0.1 用于解析 HTML。
例如,我有一行
Element infoBooksItem = body.findFirst("<div class=info_books_item>");
获取和错误,当页面上没有 <div class=info_books_item>
。
目前我正在查看 Jaunt JavaDocs,但不知道如何检查,是否有这样的元素。
如果找不到元素,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){
}
我正在使用 Nutch 抓取网站,目前正在编写一个插件。 Jaunt 1.0.0.1 用于解析 HTML。 例如,我有一行
Element infoBooksItem = body.findFirst("<div class=info_books_item>");
获取和错误,当页面上没有 <div class=info_books_item>
。
目前我正在查看 Jaunt JavaDocs,但不知道如何检查,是否有这样的元素。
如果找不到元素,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){
}