
C#通常有三种方法获取网页内容,使用WebClIEnt、Webbrowser或者httpWebRequest/httpWebResponse。
方法一:使用WebClIEnt
static voID Main(string[] args){ try { WebClIEnt MyWebClIEnt = new WebClIEnt(); MyWebClIEnt.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于向Internet资源的请求进行身份验证的网络凭据 Byte[] pageData = MyWebClIEnt.DownloadData(“http://www.163.com”); //从指定网站下载数据 string pageHTML = EnCoding.Default.GetString(pageData); //如果获取网站页面采用的是GB2312,则使用这句 //string pageHTML = EnCoding.UTF8.GetString(pageData); //如果获取网站页面采用的是UTF-8,则使用这句 Console.Writeline(pageHTML);//在控制台输入获取的内容 using (StreamWriter sw = new StreamWriter("c:\test\ouput.HTML"))//将获取的内容写入文本 { sw.Write(pageHTML); } Console.Readline(); //让控制台暂停,否则一闪而过了 } catch(WebException webEx) { Console.Writeline(webEx.Message.ToString()); }} 方法二:使用Webbrowser
Webbrowser web = new Webbrowser(); web.Navigate("http://www.xjflcp.com/ssc/"); web.documentCompleted += new WebbrowserdocumentCompletedEventHandler(web_documentCompleted); voID web_documentCompleted(object sender,WebbrowserdocumentCompletedEventArgs e) { Webbrowser web = (Webbrowser)sender; HTMLElementCollection ElementCollection = web.document.GetElementsByTagname("table"); foreach (HTMLElement item in ElementCollection) { file.AppendAllText("Kaijiang_xj.txt",item.InnerText); } } 方法三:使用httpWebRequest/httpWebResponse
1 httpWebRequest httpReq; 2 httpWebResponse httpResp; 3 4 string strBuff = ""; 5 char[] cbuffer = new char[256]; 6 int byteRead = 0; 7 8 string filename = @"c:\log.txt"; 9 ///定义写入流 *** 作 10 public voID WriteStream() 11 { 12 Uri httpURL = new Uri(txtURL.Text);13 14 ///httpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法 建立,并进行强制的类型转换 15 httpReq = (httpWebRequest)WebRequest.Create(httpURL); 16 ///通过httpWebRequest的GetResponse()方法建立httpWebResponse,强制类型转换17 18 httpResp = (httpWebResponse) httpReq.GetResponse(); 19 ///GetResponseStream()方法获取http响应的数据流,并尝试取得URL中所指定的网页内容20 21 ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理 22 Stream respStream = httpResp.GetResponseStream();23 24 ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以25 26 StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8) 27 StreamReader respStreamReader = new StreamReader(respStream,EnCoding.UTF8);28 29 byteRead = respStreamReader.Read(cbuffer,0,256); 30 31 while (byteRead != 0) 32 { 33 string strResp = new string(cbuffer,0,byteRead); 34 strBuff = strBuff + strResp; 35 byteRead = respStreamReader.Read(cbuffer,256); 36 } 37 38 respStream.Close(); 39 txtHTML.Text = strBuff; 40 }总结
以上是内存溢出为你收集整理的C#获取网页内容的三种方式全部内容,希望文章能够帮你解决C#获取网页内容的三种方式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)