Как получить карту сайта - PullRequest
       6

Как получить карту сайта

0 голосов
/ 08 декабря 2018

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

Чтобы продемонстрировать то, что я хотел бы, в значительной степени то, что делает этот веб-сайт

Сначала я попытался создать этот псевдокод:

1. Crawl Url
2. Check A-tags Values(href) and add to list
 - if the value contains in visited links ignore
3. Take new Values and turn them into possible URLs 
4. Add those into new NewUrls List
5. Crawl NewUrls
6. Keep Track of visited URLs 
7. Visit newUrls do nr 1.
8. Stop when visited URL equals to newUrl

Итак, проблема здесь: В задаче 3-й , которую я должен поставитьURL через несколько различных Правил, что внутри него все еще есть baseHost, не содержит ненужных элементов и т. д.

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

Есть ли лучший способ получить карту сайта сайта?Или, проще говоря, как я могу получить все страницы веб-сайта?

1 Ответ

0 голосов
/ 09 декабря 2018

Поскольку может существовать непрерывное количество различных стилизованных значений href, для этого потребуется довольно много правил и проверок, которые не говоря уже о том, что это выглядит грязно, но при этом очень медленно.

Вы можете использовать этот конструктор uri , чтобы справиться с этим:

public Uri (Uri baseUri, string relativeUri);

Базовым URI будет Uri страницы, на которой вы находитесь в данный момент.Относительное Uri будет значением href.Затем вы можете проверить, имеет ли результат тот же хост, что и базовый uri.

Это решает распространенные проблемы, такие как относительные URL-адреса и варианты http / https в ссылках.

Вы также можете удалить строку запроса из URL.Это распространенный источник дублирующих URL, но некоторые веб-сайты могут использовать его для функциональности.

...