如何提取网页中链接和标题的正则表达式

 

1.远程抓取:

using System.Text.RegularExpressions;
using System.IO; 

WebClient   w   =   new   WebClient();  
  byte[]   bytes   =   w.DownloadData("http://news.sina.com.cn/");  
  string   strHtml   =   System.Text.Encoding.Default.GetString(bytes);  
   
  string   p   =@"/<a.*href/s*=/s*(?:""(?<url>[^""]*)""|'(?<url>[^']*)'|(?<url>[^/>^/s]+)).*/>(?<title>[^/<^/>]*)/<[^/</a/>]*/a/>";  
   
  Regex   reg   =   new   Regex(p,   RegexOptions.IgnoreCase);  
  MatchCollection   ms   =   reg.Matches(strHtml);  
   
  Console.WriteLine("总共抓取了:{0}条链接。",ms.Count);  
   
  foreach(Match   m   in   ms)  
  {  
  Console.WriteLine("{0}/n{1}/n",   m.Groups["title"].Value,   m.Groups["url"].Value);  
  }  

2.本地测试:

using System.Text.RegularExpressions;
using System.IO; 

 string mystr=@"<A HREF=""http://www.csdn.net"">aaaa</A>";
            string p = @"/<a.*href/s*=/s*(?:""(?<url>[^""]*)""|'(?<url>[^']*)'|(?<url>[^/>^/s]+)).*/>(?<title>[^/<^/>]*)/<[^/</a/>]*/a/>";
            Regex reg = new Regex(p, RegexOptions.IgnoreCase);
            MatchCollection ms = reg.Matches(mystr);
            foreach(Match   m   in   ms)  
              {  
                  MessageBox.Show (m.Groups["title"].Value);
                  MessageBox.Show(m.Groups["url"].Value);  
              }  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值