サーバーからイメージを抽出して、ローカルシステムに保存したいと思います。画像は<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");