c#,请问怎么提取网页中图片元素带有的连接
本帖最后由 superchair 于 2013-01-15 19:11:18 编辑
C#
例如某个网站中
<a href="xxx"><img src="ooo"></a>
这样的混合的,其中XXX是点击图片进去的网址OOO是图片的地址,我想分别获取这两个。
如果单纯图片的我知道了
HtmlElementCollection elemColl1 = this.webBrowser1.Document.GetElementsByTagName("img");
ImgUrl = elem.GetAttribute("src");
但是混合起来就有点小问题了~~主要是如果吧HtmlElementCollection elemColl1 = this.webBrowser1.Document.GetElementsByTagName("img");换成
HtmlElementCollection elemColl1 = this.webBrowser1.Document.GetElementsByTagName("a");
貌似就取不到东西了!
------解决方案--------------------用正则
using System.Text.RegularExpressions;
Regex regx = new Regex("src=\"([\\s\\S].*?)\"");
MatchCollection mc = regx.Matches(this.webBrowser1.DocumentText);
foreach (Match m in mc)
{
string strFile = m.ToString(); //图片路径
}
------解决方案--------------------string str = "<a href=\"xxx\"><img src=\"ooo\"></a>";
var ary = Regex.Matches(str, @"(?is)<a[^>]*?href=[""']([^""'>]+)[^>]*><img[^>]*?src=[""']([^""']+)[^>]*").OfType<Match>().Select(t => new { href = t.Groups[1].Value, src = t.Groups[2].Value }).ToArray();