2016-07-22 2 views
0

Я работаю над программным обеспечением для извлечения изображений из веб-страницы. создали функциюИзвлечение изображения: 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 .. Но не получить представление, где поставить его

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

+0

Где/когда это говорит о том, что Ури слишком долго? – Richard

+0

on var document = new HtmlWeb(). Load (source); –

+0

Моя ставка заключается в том, что HtmlWeb.Load принимает Uri в качестве параметра, пока вы загружаете его содержимое всей страницы. Также, пожалуйста, добавьте описание класса HtmlWeb на ваш вопрос. Вероятно, вы используете больную стороннюю библиотеку. –

ответ

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"); 

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

Смежные вопросы