我最近实现了Crawler4j,我试图通过逐行分解来自学代码。我无法理解!下面的代码行上的过滤器对象表示。
@Override
public boolean shouldVisit(WebURL url) {
String href = url.getURL().toLowerCase();
return !FILTERS.matcher(href).matches() && href.startsWith("http://www.ics.uci.edu/");
}
如果有人帮助我理解,将不胜感激!过滤 器
它只是对条件的否定...你应该这样读:
! ( FILTERS.matcher(href).matches() ) [...]
基本上,如果过滤器与 href 不匹配,并且 href 以"http://www.ics.uci.edu/"开头,则该函数将返回 true。
FILTERS.matcher(href).matches()
的相反值。 基本上感叹号也称为negate
号。
如果此条件:FILTERS.matcher(href).matches()
返回 true,则将其更改为 false。