如何在文件中保存dotnetbrowser内加载的站点的特定标记图像,而不从url获取图像? C#。
赞: e.Browser.GetDocument()。GetElementByName(“ imgA”))。Save(“ C:\ aaaa.jpg”);
答案 0 :(得分:1)
根据他们的API文档,GetElementByName
返回了DOMElement
对象。并且Save()
对象中没有称为DOMElement
的方法。
假设我有这样的html:
<!DOCTYPE html>
<html>
<body>
<img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" width="500" height="333">
</body>
</html>
因此,首先,您需要从TextContent
获取DOMElement
(这是图片网址)
var url = e.Browser.GetDocument().GetElementByName("img").GetAttribute("src");
然后,您可以将图像URL加载到浏览器中。要使用DotNetBrowser下载文件,您应该创建DownloadHandler
实例。以下是使用DotNetBrowser下载文件的示例:https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110026-file-downloads
但是我个人更希望使用WebClient代替DotNetBrowser DownloadHandler.
,因此您可以像这样从url下载图像:
using (var client = new WebClient()) client.DownloadFile(url, "C:\\aaaa.jpg");
有关WebClient.DownloadFile:
https://docs.microsoft.com/en-us/dotnet/api/system.net.webclient.downloadfile?view=netframework-4.7.2