做采集等项目时,需要对html代码进行分析,其中一个需求就是对html进行分析,得到所有的图片地址,再想办法直接上传到自己的服务器,下面是得到所有图片地址的函数。
///
/// 取得HTML代码中所有图片的 URL。
///
/// HTML代码
/// 图片的URL列表,返回null时出错
public string[] GetHtmlImageUrls(string ResourseHtmlStrings)
{
try
{
// 定义正则表达式用来匹配 img 标签
Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches = regImg.Matches(ResourseHtmlStrings.ToLower());
int i = 0;
string[] imgURLs = new string[matches.Count];
// 取得匹配项列表
foreach (Match match in matches)
imgURLs[i++] = match.Groups["imgUrl"].Value;
return imgURLs;
}
catch (Exception ErrMsg)
{
return null;
}
}
得到的结果是图片地址数组