当前位置:编程学习 > C#/ASP.NET >>

求一个C#的网页数据抓取源代码

谁能给个C#的网页数据抓取源代码,最好是完整的,能直接运行抓取,用VS2008开发的
最近上头要搞这个,非常烦恼,希望做的的好心人能给点现成的参考!
邮箱:370689538@qq.com 
    先谢谢了 求一个C#的网页数据抓取源代码 --------------------编程问答--------------------

#region 范例
//抓取的就是这个地址http://www.baidu.com/s?ie=utf-8&bs=aa&f=8&rsv_bp=1&rsv_spt=3&wd=%E7%88%B1%E7%BE%8E%E4%B8%BD&rsv_sug3=8&rsv_sug=0&rsv_sug1=7&rsv_sug4=272&inputT=3873 这个百度搜索结果页面的如【imis.tmall.com/ 20小时前】中的URL的集合。 
public static IList<string> GetUrls()
{
   WebClient MyWebClient = new WebClient();
   MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据
   Byte[] pageData = MyWebClient.DownloadData("http://www.baidu.com/s?ie=utf-8&bs=aa&f=8&rsv_bp=1&rsv_spt=3&wd=%E7%88%B1%E7%BE%8E%E4%B8%BD&rsv_sug3=8&rsv_sug=0&rsv_sug1=7&rsv_sug4=272&inputT=3873"); //从指定网站下载数据
    //string pageHtml = Encoding.Default.GetString(pageData);  //如果获取网站页面采用的是GB2312,则使用这句            
    string pageHtml = Encoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句
   string test = @"(?isx)<span[^>]*class=""g"">(?><span[^*]class=""g"">(?<O>)|</sapn>(?<-O>)|(?:(?!</?span\b).)*)*(?(O)(?!))</span>";
   Regex reg = new Regex(test);
   MatchCollection mc = reg.Matches(pageHtml);
   IList<string> urlList = new List<string>();
   foreach (Match m in mc)
   {
       urlList.Add(Regex.Match(m.ToString(), @"(?<=<span[^>].*class=""g"">).*(?=</span>)").ToString());
    }
    return urlList;
}
#endregion

--------------------编程问答-------------------- 谢谢sibiyellow的回复,出现 远程服务器返回错误: (407) 需要代理身份验证。 --------------------编程问答--------------------
引用 1 楼 sibiyellow 的回复:
C# code?1234567891011121314151617181920#region 范例//抓取的就是这个地址http://www.baidu.com/s?ie=utf-8&bs=aa&f=8&rsv_bp=1&rsv_spt=3&wd=%E7%88%B1%E7%BE%8E%E4%B8%BD&rsv_sug3=8&……
感觉你的这个代码很不错,想请问一下,如果我想抓取某个网页上的邮箱名字,这个要怎么修改一下呢?求教,先谢谢啦! --------------------编程问答--------------------
引用 2 楼 liguangf 的回复:
谢谢sibiyellow的回复,出现 远程服务器返回错误: (407) 需要代理身份验证。

额 我倒没遇到过. --------------------编程问答-------------------- 怎么没人过来帮忙呢? --------------------编程问答-------------------- 用webbroswer控件,应该能搞到吧, --------------------编程问答-------------------- c#怎么拆分时间字符  --------------------编程问答--------------------
引用 7 楼 xxuyuyy 的回复:
c#怎么拆分时间字符 

你想怎么拆 --------------------编程问答--------------------
引用 5 楼 liguangf 的回复:
怎么没人过来帮忙呢?


有那么几个回答了,还说没人? --------------------编程问答-------------------- 简单的方式
用webBrowser,打开网页
myWebBrowser.Navigate(strUrl);

在DocumentCompleted事件中获取源码
myWebBrowser.Document.Body.OuterHtml之类的

然后看源码规律获取想要的信息 --------------------编程问答-------------------- http://bbs.csdn.net/topics/390536792
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,