首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

C#网页采撷数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

2013-10-23 
C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)获取网页数据有很多种

C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

获取网页数据有很多种方式。在这里主要讲述通过WebClient、WebBrowser和HttpWebRequest/HttpWebResponse三种方式获取网页内容。

这里获取的是包括网页的所有信息。如果单纯需要某些数据内容。可以自己构造函数甄别抠除出来!一般的做法是根据源码的格式,用正则来过滤出你需要的内容部分。

一、通过WebClient获取网页内容

这是一种很简单的获取方式,当然,其它的获取方法也很简单。在这里首先要说明的是,如果为了实际项目的效率考虑,需要考虑在函数中分配一个内存区域。大概写法如下

   public void GetHtml()        {            var url = "http://www.360doc.com/content/11/0427/03/1947337_112596569.shtml";            string strBuff = "";//定义文本字符串,用来保存下载的html            int byteRead = 0;                         HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();            //若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理             Stream reader = webResponse.GetResponseStream();            ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)            StreamReader respStreamReader = new StreamReader(reader,Encoding.UTF8);            ///分段,分批次获取网页源码            char[] cbuffer = new char[1024];            byteRead = respStreamReader.Read(cbuffer,0,256);            while (byteRead != 0)            {                string strResp = new string(char,0,byteRead);                strBuff = strBuff + strResp;                byteRead = respStreamReader.Read(cbuffer,0,256);            }            using (StreamWriter sw = new StreamWriter("e:\\ouput.txt"))//将获取的内容写入文本            {                htm = sw.ToString();//测试StreamWriter流的输出状态,非必须                sw.Write(strBuff);            }        }

热点排行