2016-07-22 91 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过长” ..

我试图用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"); 

,你会好到哪里去。