如何检查同一主机上是否有URL

时间:2015-11-18 12:36:57

标签: c# html-parsing

我正在尝试解析html页面(使用Html Agility pack)并提取所有图像链接。现在我想看看链接是否在同一主机上。以下代码是否涵盖所有方案?有没有更好的解决方案来实现这一目标?

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img/@src"))
{
    var link = node.Attributes["src"].Value.Trim();

    if (link.StartsWith("http", true, null) || link.StartsWith("//"))
        //the link is not on the same host
}

1 个答案:

答案 0 :(得分:1)

我会使用以下正则表达式:

if(Regex.IsMatch(link, @"^(\w+:)*\/\/"))
{
   // The link is not on the same host
}

这适用于任何协议,并且不会匹配本地目录或以http开头的文件,例如评论中的@AlexK示例