html-agility-pack 提取背景图片
html-agility-pack extract a background image
如何从以下 HTML 中提取 url。
即.. 摘录:
http://media.somesite.com.au/img-101x76.jpg
来自:
<div class="media-img">
<div class=" searched-img" style="background-image: url(http://media.somesite.com.au/img-101x76.jpg);"></div>
</div>
一般在 XPath 1.0 中,您可以使用 substring-after()
和 substring-before()
函数的组合来提取文本的一部分。但是 HAP 的 SelectNodes()
和 SelectSingleNode()
不能 return 除了节点之外,所以那些 XPath 函数将无济于事。
一种可能的方法是使用 XPath 和 HAP 获取 style
属性的整个值,然后使用 regex 进一步处理来自 .NET 的值,例如:
var html = @"<div class='media-img'>
<div class=' searched-img' style='background-image: url(http://media.somesite.com.au/img-101x76.jpg);'></div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[contains(@class,'searched-img')]");
var url = Regex.Match(div.GetAttributeValue("style", ""), @"(?<=url\()(.*)(?=\))").Groups[1].Value;
Console.WriteLine(url);
输出:
http://media.somesite.com.au/img-101x76.jpg
如何从以下 HTML 中提取 url。
即.. 摘录:
http://media.somesite.com.au/img-101x76.jpg
来自:
<div class="media-img">
<div class=" searched-img" style="background-image: url(http://media.somesite.com.au/img-101x76.jpg);"></div>
</div>
一般在 XPath 1.0 中,您可以使用 substring-after()
和 substring-before()
函数的组合来提取文本的一部分。但是 HAP 的 SelectNodes()
和 SelectSingleNode()
不能 return 除了节点之外,所以那些 XPath 函数将无济于事。
一种可能的方法是使用 XPath 和 HAP 获取 style
属性的整个值,然后使用 regex 进一步处理来自 .NET 的值,例如:
var html = @"<div class='media-img'>
<div class=' searched-img' style='background-image: url(http://media.somesite.com.au/img-101x76.jpg);'></div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[contains(@class,'searched-img')]");
var url = Regex.Match(div.GetAttributeValue("style", ""), @"(?<=url\()(.*)(?=\))").Groups[1].Value;
Console.WriteLine(url);
输出:
http://media.somesite.com.au/img-101x76.jpg