StormCrawler's default-regex-filters.txt - PullRequest
       7

StormCrawler's default-regex-filters.txt

0 голосов
/ 05 сентября 2018

Я уже давно возился с этим и не смог разобраться, как работает файл default-regex-filters.txt для StormCrawler.

В одном примере мне нужно ограничить сканер ТОЛЬКО элементами для сканирования под https://www.example.com/dev и без каких-либо других каталогов на этом сайте. Я поставил правило

+.*\/dev\/.*

в последнюю строку файла default-regex-filters.txt, но, похоже, он не работает. Я думал, что применяются стандартные правила регулярных выражений, но, похоже, это не так. один из приведенных выше примеров имел / без \ до него и он работал? Я довольно смущен этим, и мне интересно, есть ли в этом файле шпаргалка для регулярных выражений, чтобы мне было легче их построить.

Верно ли, что в файле может быть только один + фильтр? Я смутно помню, что читал это, но хотел быть уверенным.

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете иметь столько + фильтров в файлах, сколько хотите.

Логика фильтрации просто

 public String filter(URL pageUrl, Metadata sourceMetadata, String url) {
    for (RegexRule rule : rules) {
        if (rule.match(url)) {
            return rule.accept() ? url : null;
        }
    }
    return null;
}

, где accept указывает, что шаблон имеет +. Если ничего не найдено, URL фильтруется.

Может быть, ты ушел

# accept anything else
+.

над выражением, которое вы добавили?

Возможно, вы захотите взглянуть на FastURLFilter , который, вероятно, более интуитивно понятен.

...