C#得到html代码中所有图片地址
做采集等项目时,需要对html代码进行分析,其中一个需求就是对html进行分析,得到所有的图片地址,再想办法直接上传到自己的服务器,下面是得到所有图片地址的函数。
/// <summary>
/// 取得HTML代码中所有图片的 URL。
/// </summary>
/// <param name="ResourseHtmlStrings">HTML代码</param>
/// <returns>图片的URL列表,返回null时出错</returns>
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]*(?<imgUrl>[^\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;
}
}
得到的结果是图片地址数组