不使用API​​?

我知道有几种方法。

我正在使用mshtml库,这比webbrowser控件要好。我有效地实现了Internet Explorer的自动化。

基本上,我更喜欢直接获取图像而无需知道htmlimg的URL并下载它的方法。

我知道我可以从图像元素中获取URL并通过webclient下载它。 图像根据cookie和IP 而变化。这样就不会了。

我希望htmlimg元素显示的确切图像是存储的图像。

基本上,就像有人正在对屏幕上显示的内容进行本地截图一样。

最佳答案

这里有一个旧的解决方案:

http://p2p.wrox.com/c/42780-mshtml-how-get-images.html#post169674

这些天,尽管您可能想查看Html Agility Pack:

http://htmlagilitypack.codeplex.com/

但是文档并不十分出色。因此,此代码段可能会有所帮助:

HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);

// You can also load a web page by utilising WebClient and loading in the stream - use one of the htmlDoc.Load() overloads

var body = htmlDoc.DocumentNode.Descendants("body").FirstOrDefault();

foreach (var img in body.Descendants("img"))
{
    var fileUrl = img.Attributes["src"].Value;
    var localFile = @"c:\localpath\tofile.jpg";

    // Download the image using WebClient:
    using (WebClient client = new WebClient())
    {
        client.DownloadFile("fileUrl", localFile);
    }
}

10-07 19:39