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.youkuaiyun.com"">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);
}
本文介绍了一种使用C#进行网页链接抓取的方法,包括远程抓取和本地测试两个部分。通过WebClient下载网页内容,并利用正则表达式解析出<a>标签中的链接及其标题。
580





