Задачи
April 3, 2023
Анонс. Как работает поисковый робот?!
Вам дан стартовый URL адрес и сторонний API WebParser. Необходимо реализовать веб сканер для обхода всех ссылок, находящихся под тем же именем хоста, что и стартовый URL адрес.
Верните все URL адреса, полученные вашим поисковым роботом (в любом порядке).
- Вызовите WebParser.getUrls(url), чтобы получить все URL-адреса с веб страницы с заданным URL-адресом. Не сканируйте одну и ту же ссылку дважды.
- Исследуйте только те ссылки, которые находятся под тем же именем хоста, что и startUrl.
- Для простоты считайте, что все адреса не используют порт.
Входные данные: startUrl - стартовый URL адрес, сторонний API сервис WebParser с методом getUrls(url), который возвращает список всех URL адресов для заданной страницы.
public class WebParser
{
private static Dictionary<string, List<string>> SampleTreeUrl = new Dictionary<string, List<string>>()
{
{
"http://blog.unilecs.ru/tasks/arrays",
new List<string>() {
"http://blog.unilecs.ru",
"http://blog.unilecs.ru/tasks"
}
},
{
"http://blog.unilecs.ru",
new List<string>() {
"http://blog.unilecs.ru/puzzles",
"http://blog.supercode.ru/tasks"
}
},
{
"http://blog.supercode.ru/tasks/arrays",
new List<string>() {
"http://blog.supercode.ru",
"http://blog.supercode.ru/tasks"
}
},
{
"http://blog.supercode.ru",
new List<string>() {
"http://blog.supercode.ru/puzzles",
"http://blog.unilecs.ru/tasks/arrays"
}
},
};
public List<string> GetUrls(string startUrl)
{
if (!SampleTreeUrl.ContainsKey(startUrl))
return new List<string>();
return SampleTreeUrl[startUrl];
}
}StartUrl: "http://blog.unilecs.ru/tasks/arrays"
"http://blog.unilecs.ru/tasks",
"http://blog.unilecs.ru/puzzles",