【问题标题】:Image Extraction : uri is too long图像提取:uri 太长
【发布时间】:2016-11-26 08:10:39
【问题描述】:

我正在从 A WebPage 开发图像提取软件。已经创建了一个函数

 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 .. 但不知道该放在哪里

任何帮助将不胜感激

【问题讨论】:

  • 在哪里/何时说 Uri 太长了?
  • 关于 var document = new HtmlWeb().Load(source);
  • 我敢打赌,HtmlWeb.Load 将 Uri 作为其参数,而您正在为其提供整个页面内容。另请在您的问题中添加 HtmlWeb 类的描述。您可能正在使用一些 3rd 方库。

标签: c# uri image-extraction


【解决方案1】:

HtmlWeb.LoadURL 作为其来源并处理内容的下载。您不需要补充 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");

你会很高兴的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2020-02-04
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多