好库网 好库网首页 | 我的好库
好饱的专栏

ASP.NET如何用正则表达式得到网站页面中的所有链接

发布者:好饱
发布日期:2011/4/26 21:31:12   更新日期:2011/4/26 21:31:12
阅读次数:2179
评分:4.80
介绍:有时候我们需要遍历某个页面中的所有链接,甚至遍历整个网站,本文介绍了页面内容分解的方法。
正文:

 

有时候我们需要遍历某个页面中的所有链接,甚至遍历整个网站。我们用WebClient.DownloadString或HttpWebRequest得到某个网址的页面内容后,可以用正则表达式对内容进行分解。

具体请看代码:

 

public void ExtractURLs(string str)
{
    // match.Groups["name"].Value - 链接名字
    // match.Groups["url"].Value - 网址链接

    string RegexPattern = @"<a.*?href=[""'](?<url>.*?)[""'].*?>(?<name>.*?)</a>";

    // 正则匹配
    System.Text.RegularExpressions.MatchCollection matches
        = System.Text.RegularExpressions.Regex.Matches(str, RegexPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);

    foreach (System.Text.RegularExpressions.Match match in matches)
    {
        Response.Write(match.Groups["url"].Value);
        Response.Write(match.Groups["name"].Value);
    }
}

在取得url后,我们可以再用WebClient.DownloadString获得内容,再分解、再进入,递归调用循环往复就可以遍历整个站点。

 

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。