使用Agility pack将图像保存在html文档中

时间:2013-04-08 19:07:50

标签: c# asp.net-mvc html-agility-pack

我正在尝试以特定页面的jpeg(或任何格式)保存图像。

假设我在文档中有这个节点:

<td class="leftCol" align="center">
          <img src="/Images/LoadImage/1122334455" id="bp250_bp250_bp250_main_sub_sub_itemImage" alt="Object #1" style="border:none;" />

                    <div class="variations">
                        &nbsp;

                    </div>
                    <div class="rotate">
                        <a href="javascript:void(0)" rel="lightbox" onclick="return RotateCardImage(event, this, true);">
                        </a>
                    </div>
                </td>

我想保存包含在中的图像

HtmlNodeCollection allImgNodes = docToParse.DocumentNode.SelectNodes("//img");

然后这个:

foreach(var allImgNode in allImgNodes)
{
    if(allImgNode.Attributes["alt] != null)
    {
        if(allImgNode.Attributes["alt"].Value == objName)
        {
            (... and here I am...)
        }
    }
}

objName是一个对应于对象名称的字符串,在本例中,“Object#1”将是objName。

任何人都可以帮我弄明白怎么做吗?谢谢。

1 个答案:

答案 0 :(得分:1)

感谢Darin(这里:C# htmlagility pack , save image from a URL),我理解了另一种对我有帮助的方法。

首先使用Html Agility Pack我得到了我存储的图像的网址:

string fileName = directoryToStoreImgs + objName + ".jpeg";

然后我使用webClient下载图像:

using (var imgClient = new WebClient())
{
    imgClient.DownloadFile(objUrl, fileName);
}

现在我可以存储我的图片了:)