我想从服务器中提取图像并将其存储在我的本地系统中。<img>
图像在标签中显示为背景。如何提取和存储图像。实际的图像标签如下所示
<img style="background:Url('..//contactdetails?data=4512354367432554')" src="some transparent image"/>
在上面的标签图像中显示为背景, src 包含一些透明图像。
我想从服务器中提取图像并将其存储在我的本地系统中。<img>
图像在标签中显示为背景。如何提取和存储图像。实际的图像标签如下所示
<img style="background:Url('..//contactdetails?data=4512354367432554')" src="some transparent image"/>
在上面的标签图像中显示为背景, src 包含一些透明图像。
您需要对图像执行请求,然后将其保存在您的机器上。首先获取图片的URI:
var html = @"<img style=""background:Url('..//contactdetails?data=4512354367432554')"" src=""some transparent image""/>";
var regex = new Regex(@"//(?<Path>[^']+)'", RegexOptions.Singleline)
var uri = regex.Match(html).Groups["Path"].Value;
编辑
如果您正在使用HtmlAgilityPack
(假设您已经提取了a
标签),您可以使用该Attributes
集合来获取style
属性并对正则表达式执行匹配,或者您可以直接使用该OuterHtml
属性来匹配模式,如下所示:
var anchorTag = YourCodeToGetTheAnchorTag();
var attribute = anchorTag.Attributes["style"];
var match = regex.Match(attribute.Value);
var uri = match.Groups["Path"].Value;
或者,使用OuterHtml
属性:
var anchorTag = YourCodeToGetTheAnchorTag();
var match = regex.Match(anchorTag.OuterHtml);
var uri = match.Groups["Path"].Value
接下来,将图像的 uri 连接到服务器的目录,并创建一个请求:
var fullUri = "http://www.example.com/" + uri;
var request = (HttpWebRequest)WebRequest.Create(fullUri);
获取响应并保存图像:
var response = request.GetResponse();
var image = Image.FromStream(response.GetResponseStream());
image.Save("path-on-your-machine");