Итак, последние два дня я искал краулер, который соответствовал бы моим потребностям. Я хочу создать поисковую систему и сам хочу делать индексацию. Это будет частью академического проекта. Хотя у меня нет вычислительной мощности, чтобы сканировать всю сеть, я хотел бы использовать поисковый робот, который действительно способен на это. Я ищу краулера, который:
- поддерживает многопоточность
- не пропускает много ссылок
- дает мне возможность (переопределить метод, чтобы я мог) получить доступ к содержимому просканированных страниц, чтобы я мог его сохранить, проанализировать и т. д.
- подчиняется файлам robots.txt
- сканирует html-страницы (также php, jsp и т. д.).
- распознает страницы с одинаковым содержанием и возвращает только одну.
Что не обязательно (не обязательно) делать, так это:
- поддержка рейтинга страниц.
- индексировать результаты.
- сканировать изображения / аудио / видео / pdf и т. д.
Я нашел несколько библиотек / проектов, очень близких к моим потребностям, но, насколько я знаю, они не поддерживают все, что мне нужно:
- Сначала я наткнулся на crawler4j. Единственная проблема с этим заключается в том, что он не поддерживает интервал вежливости для каждого хоста. Следовательно, установка приемлемого уровня вежливости в 1000 мс делает краулер ужасно медленным.
- Я также нашел flaxcrawler. Это действительно поддерживает многопоточность, но, похоже, возникают проблемы с поиском и переходом по ссылкам на веб-страницах.
Я также посмотрел на более полные и сложные «краулеры», такие как Heritrix и Nutch. Хотя я не так хорошо разбираюсь в более сложных вещах, но я определенно готов использовать его, если уверен, что он сможет делать то, что мне нужно: сканировать Интернет и давать мне все страницы, чтобы я мог читать их.
Короче говоря: я ищу сканер, который очень быстро просматривает все страницы в Интернете и дает мне возможность что-то с ними делать.