如何提取網頁中連結和標題的Regex

來源:互聯網
上載者:User

 

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);  
              }  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.