Извлечение изображения: URI слишком длинный

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

 public static void GetAllImages()
        {

            WebClient x = new WebClient();
            string source = x.DownloadString(@"http://www.bbc.com");

            var document = new HtmlWeb().Load(source);
            var urls = document.DocumentNode.Descendants("img")
                                .Select(e => e.GetAttributeValue("src", null))
                                .Where(s => !String.IsNullOrEmpty(s));

            document.Load(source);


        }

Там написано "Ури слишком длинный" ..

Я пытался использовать Uri.EscapeDataString .. Но не понимаю, куда его поместить

Любая помощь будет оценена

1 ответ

Решение

HtmlWeb.Load принимает URL-адрес в качестве источника и занимается загрузкой содержимого. Вам не нужно дополнительное WebClient чтобы сделать это, обо всем позаботятся.

Что вы делаете, это загружаете контент, затем пытаетесь использовать загруженный контент (HTML) в качестве URL (вероятно, при условии, что Load средства Parse).

Так удали

WebClient x = new WebClient();
string source = x.DownloadString(@"http://www.bbc.com");

затем измените следующую строку на

var document = new HtmlWeb().Load(@"http://www.bbc.com");

и тебе будет хорошо идти.

Другие вопросы по тегам