Nutch regex-urlfilter не работает - PullRequest
0 голосов
/ 29 августа 2018

Я сканирую веб-сайт, на котором есть много поддоменов. Я хочу ограничить просмотр нескольких URL-адресов. Например, у меня есть веб-сайт http://www.123.com, и у меня есть под URL-адреса, оканчивающиеся на http: //.123.com. Я хочу избежать сканирования http://www.def.123.com и http://www.ghi.123.com, как я могу добавить фильтры.

В настоящее время я применил фильтр ниже, но он сканирует эти два ограниченных URL-адреса

+ ^ http://*.123.com

- ^ http://www.def.123.com

- ^ http://www.def.123.com

Ответы [ 4 ]

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

порядок важен, попробуйте следующее

- ^ (HTTP | HTTPS): //.*.123.com

+ ^ (http | https): //123.com/ или +.

0 голосов
/ 30 августа 2018

Вы можете использовать отрицательный взгляд:

+^https?://(?!(www.def|www.ghi).123.com(/.*)?$).*.123.com(/.*)?

Принимается любой URL, начинающийся с шаблона https?://.*.123.com, кроме https?://www.def.123.com и https?://www.ghi.123.com.

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

Попробуйте это

+^(?:https?:\/\/)?(?:www\.)?123\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?def\.[a-zA-Z0-9.\S]+$
-^(?:https?:\/\/)?(?:www\.)?ghi\.[a-zA-Z0-9.\S]+$
0 голосов
/ 30 августа 2018

В комментарии в начале regex-urlfilter.txt говорится:

Первый соответствующий шаблон в файле определяет, включен ли URL-адрес или игнорируется

Таким образом, поскольку ваше первое регулярное выражение совпадает и начинается с +, все URL-адреса с этого сайта будут сканироваться. Чтобы это исправить, сначала укажите более конкретные (исключая) URL-адреса, а последнее правило - последними.

...