11

不使用 API?

我知道有几种方法。

顺便说一句,我使用的是 mshtml 库,它比 webbrowser 控件更好。我直接有效地自动化了 Internet Explorer。

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

我知道我可以从图像元素中获取 URL 并使用 webclient 下载它。图像会根据 cookie 和 IP 变化。所以那不行

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

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

4

1 回答 1

1

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

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);
    }
}
于 2015-10-16T02:34:21.827 回答