Поиск каждой страницы для данного домена - PullRequest
2 голосов
/ 20 августа 2011

Существует ли какой-либо инструмент / библиотека для Ruby, который при присвоении имени домена возвращает список всех страниц этого домена?

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Вы можете использовать Анемон , это фреймворк Ruby Web Spider.Он требует Nokogiri в качестве зависимости, так как он должен анализировать (X) HTML.

0 голосов
/ 21 августа 2011

Перечисление является сложной задачей, если сайт представляет собой что-то кроме набора статических HTML-страниц. Как только вы попадаете на серверные скрипты любого типа, возвращаемая «страница» может сильно зависеть от состояния вашего сеанса. Очевидным примером могут быть страницы или ресурсы, доступные только после входа в систему. Из-за этого многие автоматизированные средства перечисления (обычно являющиеся частью программ аудита безопасности веб-приложений) ошибаются и пропускают большие части сайта. Моя точка зрения здесь заключается в том, что перечисление часто является чем-то большим, чем просто запуск инструмента.

Хорошей новостью является то, что довольно легко написать свой собственный перечислитель, который хорошо работает, учитывая немного знаний, которые вы можете получить в основном, просто покопавшись на сайте. Я написал нечто подобное, используя Mechanize , который легко отслеживает вашу историю, когда вы запрашиваете страницы. Так что довольно просто настроить Mechanize для настройки необходимого вам состояния на стороне сервера (а именно, войти в систему), а затем посетить каждую найденную ссылку. Просто запросите главную страницу или любые «список» страниц, которые вам нужны, и сохраните массив ссылок. Переберите этот список ссылок и, если ссылка отсутствует в истории, перейдите по этой ссылке и сохраните список ссылок на этой странице. Повторяйте, пока список ссылок не станет пустым.

Но, как я уже сказал, все зависит от того, что происходит на стороне сервера. Могут быть страницы, на которые вы не ссылаетесь или которые не доступны вам, и вы не сможете их найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...