C#获取网页内容的三种方式

C#获取网页内容的三种方式,第1张

概述C#通常有三种方法获取网页内容,使用WebClient、WebBrowser或者HttpWebRequest/HttpWebResponse。 方法一:使用WebClient static void Main(string[] args){ try { WebClient MyWebClient = new WebClient();

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#获取网页内容的三种方式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1214550.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存