获取网页的所有锚标记

时间:2010-02-23 12:39:39

标签: c# .net asp.net

鉴于网址,我想检测网站中的所有链接,识别内部链接并列出它们。

我拥有的是:

            WebClient webClient = null;
            webClient = new WebClient();

            string strUrl = "http://www.anysite.com";
            string completeHTMLCode = "";

            try
            {
                completeHTMLCode = webClient.DownloadString(strUrl);
            }
            catch (Exception)
            {                    
            }

使用这个我可以阅读页面的内容....但我脑海中唯一的想法是解析这个字符串....搜索<a然后href然后是值在双引号之间。

这是唯一的出路吗?还是有一些其他更好的解决方案?

2 个答案:

答案 0 :(得分:4)

使用HTML Agility Pack。这是一个blog post的链接,可以帮助您入门。不要使用正则表达式。

答案 1 :(得分:2)

使用HtmlAgilityPack

 completeHTMLCode = 
   webClient.DownloadString(strUrl);

 doc.Load(completeHTMLCode);
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@a"])
 {
   //
 }