У меня относительно простой случай. Я в основном хочу хранить данные о ссылках между различными сайтами и не хочу ограничивать домены. Я знаю, что мог бы написать свой собственный сканер, используя некоторую клиентскую библиотеку http, но я чувствую, что буду выполнять какую-то ненужную работу - проверять, чтобы страницы не проверялись более одного раза, определять, как читать и использовать файл robots.txt возможно, даже пытаюсь сделать его параллельным и распределенным, и я уверен, что есть много других вещей, о которых я еще не подумал.
Итак, я хотел каркас для сканирования в Интернете, который бы заботился о подобных вещах, позволяя мне диктовать, что делать с ответами (в моем случае, просто извлекать ссылки и хранить их). Большинство сканеров предполагают, что вы индексируете веб-страницы для поиска, и это бесполезно, мне нужно что-то настраиваемое.
Я хочу сохранить информацию о ссылке в базе данных MongoDB , поэтому мне нужно иметь возможность диктовать, как ссылки хранятся в платформе. И хотя я пометил вопрос как независимый от языка, это также означает, что я должен ограничить выбор каркасом в одном из поддерживаемых языков MongoDB (Python, Ruby, Perl, PHP, Java и C ++), который является очень широкая сеть Я предпочитаю динамические языки, но я открыт для любых предложений.
Я смог найти Scrapy (который выглядит аккуратно) и JSpider (который кажется хорошим, но, возможно, немного "сверхмощным"), основываясь на странице 121 руководство пользователя), но я хотел посмотреть, есть ли другие хорошие варианты, которых мне не хватает.