Извлечение изображения: 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");
и тебе будет хорошо идти.