Какой поисковый робот на основе Java подходит для академического проекта по созданию поисковой системы?

Итак, последние два дня я искал краулер, который соответствовал бы моим потребностям. Я хочу создать поисковую систему и сам хочу делать индексацию. Это будет частью академического проекта. Хотя у меня нет вычислительной мощности, чтобы сканировать всю сеть, я хотел бы использовать поисковый робот, который действительно способен на это. Я ищу краулера, который:

  1. поддерживает многопоточность
  2. не пропускает много ссылок
  3. дает мне возможность (переопределить метод, чтобы я мог) получить доступ к содержимому просканированных страниц, чтобы я мог его сохранить, проанализировать и т. д.
  4. подчиняется файлам robots.txt
  5. сканирует html-страницы (также php, jsp и т. д.).
  6. распознает страницы с одинаковым содержанием и возвращает только одну.

Что не обязательно (не обязательно) делать, так это:

  1. поддержка рейтинга страниц.
  2. индексировать результаты.
  3. сканировать изображения / аудио / видео / pdf и т. д.

Я нашел несколько библиотек / проектов, очень близких к моим потребностям, но, насколько я знаю, они не поддерживают все, что мне нужно:

  1. Сначала я наткнулся на crawler4j. Единственная проблема с этим заключается в том, что он не поддерживает интервал вежливости для каждого хоста. Следовательно, установка приемлемого уровня вежливости в 1000 мс делает краулер ужасно медленным.
  2. Я также нашел flaxcrawler. Это действительно поддерживает многопоточность, но, похоже, возникают проблемы с поиском и переходом по ссылкам на веб-страницах.

Я также посмотрел на более полные и сложные «краулеры», такие как Heritrix и Nutch. Хотя я не так хорошо разбираюсь в более сложных вещах, но я определенно готов использовать его, если уверен, что он сможет делать то, что мне нужно: сканировать Интернет и давать мне все страницы, чтобы я мог читать их.

Короче говоря: я ищу сканер, который очень быстро просматривает все страницы в Интернете и дает мне возможность что-то с ними делать.


person Marco    schedule 30.01.2013    source источник
comment
Каковы фактические требования к приложению?   -  person Peter Wooster    schedule 30.01.2013
comment
Извините, вы можете уточнить? Я не совсем понимаю, что вы имеете в виду под фактическими требованиями к приложению. Вы имеете в виду количество ссылок, которые нужно сканировать? Или что приложение должно делать? Или что-то другое?   -  person Marco    schedule 30.01.2013
comment
Чего вы хотите этим добиться?   -  person Peter Wooster    schedule 30.01.2013
comment
Что ж, что касается моей магистерской диссертации, я разрабатываю поисковую систему на основе пользовательского контента. Думаю, это дает вам представление о концепции: en.wikipedia.org/wiki/Wikia_Search. Хотя люди в основном манипулируют контентом поисковой системы, сканирование тоже должно быть выполнено. Это четкий ответ?   -  person Marco    schedule 30.01.2013
comment
Тот факт, что это академический проект, может помочь людям дать ответы. Вы должны указать свой вопрос.   -  person Peter Wooster    schedule 30.01.2013


Ответы (1)


AFAIK, Apache Nutch подходит большинству ваших требований. Nutch также имеет архитектуру плагинов, с помощью которой можно при необходимости написать свою собственную. Вы можете просмотреть вики [0] и задать вопрос в списке рассылки, если у вас есть какие-либо вопросы.

[0] http://wiki.apache.org/nutch/FrontPage

person kich    schedule 22.03.2013