Nutch regex не ползет так, как я хочу

Хорошо, я уже спрашивал об этом, но, думаю, я не спрашивал, как ожидает стекоперемещение. Надеюсь, на этот раз мне повезет больше, и я получу ответ.

Я пытаюсь запустить Nutch для сканирования этого сайта: http://www.tigerdirect.com/

Я хочу, чтобы он сканировал этот сайт и все подссылки.

Проблема в том, что он не работает. В моем reg-ex файле я попробовал пару вещей, но ни одна из них не сработала:

+^http://([a-z0-9]*\.)*tigerdirect.com/

+^http://tigerdirect.com/([a-z0-9]*\.)*

мой urls.txt:

http://tigerdirect.com

По сути, я пытаюсь просканировать все страницы продуктов на их веб-сайте, чтобы создать поисковую систему (я использую solr) электронных продуктов. В конце концов я хочу сканировать bestbuy.com, newegg.com и другие сайты.

Кстати, я следовал этому руководству здесь: http://wiki.apache.org/nutch/NutchTutorial и я использую скрипт, упомянутый в сессии 3.3 (после исправления ошибки, которая у него была).

У меня есть опыт работы в java, android и bash, так что это немного ново для меня. Я делал регулярные выражения в Perl 5 лет назад, но это все забыто.

Спасибо!

2 ответа

Решение

По вашим комментариям я вижу, что вы что-то сканировали раньше, и именно поэтому ваш Nutch начинает сканировать Википедию.

Когда вы сканируете что-то с помощью Nutch, он записывает некоторую метаду в таблицу (если вы используете Hbase, это таблица с именем webpage). Когда вы заканчиваете сканирование и начинаете новый, эта таблица сканируется, и если есть запись с метадой, "эта запись может быть получена снова, потому что время следующей выборки прошло" Nutch начинает получать эти URL, а также ваши новые URL.

Так что, если вы хотите, чтобы в вашей системе был только что просканирован http://www.tigerdirect.com/ вам нужно сначала очистить эту таблицу. Если вы используете Hbase start shell:

./bin/hbase shell

и отключить таблицу:

disable 'webpage'

и наконец бросьте это:

drop 'webpage'

Я мог бы обрезать эту таблицу, но удалил ее.

Следующая вещь помещает это в ваш seed.txt:

http://www.tigerdirect.com/

Откройте файл regex-urlfilter.txt, расположенный по адресу:

nutch/runtime/local/conf

запишите эту строку в нее:

+^http://([a-z0-9]*\.)*www.tigerdirect.com/([a-z0-9]*\.)*

вы поставите эту строку вместо +.

Я указал сканировать субдомены tigerdirect, это зависит от вас.

После этого вы можете отправить его в solr для индексации и выполнить поиск по нему. Я попробовал это и работает, однако у вас могут быть некоторые ошибки на стороне Nutch, но это еще одна тема для разговора.

У вас есть / в конце обоих ваших регулярных выражений, но у вашего URL нет.

http://tigerdirect.com/ будет соответствовать, http://tigerdirect.com не буду.

+^http://tigerdirect.com/([a-z0-9]*\.)*Попробуйте переместить хвостовую косую черту внутри паренов+^http://tigerdirect.com(/[a-z0-9]*\.)*

Другие вопросы по тегам