Skip to content

Files

Latest commit

 

History

History

SitemapCreator

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

11.21. Домашняя работа 11.3

Цель задания

Научиться использовать ForkJoinPool для решения рекурсивных задач.

Что нужно сделать

Напишите приложение, которое в многопоточном режиме сформирует карту заданного сайта (список ссылок), и запишите её в файл. Ссылки на дочерние страницы должны располагаться в файле с отступами на одну табуляцию относительно родительских.

Пример

https://skillbox.ru/
    https://skillbox.ru/media/
        https://skillbox.ru/media/management/
            https://skillbox.ru/media/management/kak_rat_podkhod/

Рекомендации

  • В файле должны быть ссылки на страницы, размещённые на том же домене (в примере — skillbox.ru). В списке не должно быть:

    1. ссылок на другие сайты и поддомены,
    2. ссылок на внутренние элементы страниц (у таких ссылок есть символ # после адреса страницы).
  • При запросе страниц нужно выдерживать паузы (с помощью метода sleep() у потока), чтобы сайт не заблокировал доступ вашего приложения. Используйте значения от 100 до 150 мс.

  • Для отладки программы выберите сайт с сотнями или тысячами страниц (например, http://www.lenta.ru/), чтобы сервер вас не заблокировал.

Критерии оценки

«Зачёт» — программа формирует список ссылок любого сайта и сохраняет в текстовый файл.
«Незачёт» — задание не выполнено.