C#获取网页源代码的5种方法

来源:互联网 发布:证券公司 网络金融 编辑:程序博客网 时间:2024/05/17 02:40

//方法一:using System.Text;using System.Net;private string getHtml(string url){WebClient myWebClient = new WebClient();byte[] myDataBuffer = myWebClient.DownloadData (url);return Encoding.Default.GetString(myDataBuffer);}using System.Text;using System.Net;private string getHtml(string url){WebClient myWebClient = new WebClient();byte[] myDataBuffer = myWebClient.DownloadData (url);return Encoding.Default.GetString(myDataBuffer);}
//方法二:public string getHttp(string HttpUrl,string RefererUrl){string html = "";try{MSXML2.XMLHTTP Http = new MSXML2.XMLHTTPClass();xmlhttp.open("GET", Url, false, null, null);Http.open("GET",HttpUrl,false,null,null);Http.setRequestHeader("Referer",RefererUrl);//Http.setRequestHeader("Referer",RefererUrl);Http.setRequestHeader("Content-Type", "text/html;charset=gb2312");Http.send("");html = Encoding.Default.GetString((byte[])Http.responseBody);Http = null;}catch{}return html;}  public bool getweb(string strURL,out string buf)  {   buf="";   try   {    //Uri url=new Uri(strURL,false);    HttpWebRequest request;    request = (HttpWebRequest)WebRequest.Create(strURL);    request.Method="POST"; //Post请求方式    request.ContentType="text/html;charset=gb2312"; //内容类型    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码    byte[] payload;    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节    request.ContentLength = payload.Length; //设置请求的ContentLength    Stream writer = request.GetRequestStream(); //获得请求流    writer.Write(payload,0,payload.Length); //将请求参数写入流    writer.Close(); //关闭请求流    HttpWebResponse response;    response = (HttpWebResponse)request.GetResponse(); //获得响应流    Stream s;    s = response.GetResponseStream();    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));    string HTML = "";    string sLine ="";    int i = 0;    while (sLine!=null)    {     i++;     sLine = objReader.ReadLine();     if (sLine!=null)      HTML += sLine;    }    //HTML = HTML.Replace("<","<");    //HTML = HTML.Replace(">",">");    buf=HTML;    return true;   }   catch (Exception x)   {       buf=x.Message.ToString();    return false;       }  } 带Cookie:CookieContainer cc = new CookieContainer();public bool getweb(string strURL,out string buf)  {   buf="";   try   {    HttpWebRequest request;    request = (HttpWebRequest)WebRequest.Create(strURL);    request.Method="POST"; //Post请求方式    request.ContentType="text/html;charset=gb2312"; //内容类型    string paraUrlCoded = System.Web.HttpUtility.UrlEncode(""); //参数经过URL编码    byte[] payload;    payload = System.Text.Encoding.GetEncoding("GB2312").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节    request.ContentLength = payload.Length; //设置请求的ContentLength    Stream writer = request.GetRequestStream(); //获得请求流    writer.Write(payload,0,payload.Length); //将请求参数写入流    writer.Close(); //关闭请求流    HttpWebResponse response;    response = (HttpWebResponse)request.GetResponse(); //获得响应流    Stream s;    s = response.GetResponseStream();    StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));    string HTML = "";    string sLine ="";    int i = 0;    while (sLine!=null)    {     i++;     sLine = objReader.ReadLine();     if (sLine!=null)      HTML += sLine;    }    buf=HTML;    return true;   }   catch (Exception x)   {       buf=x.Message.ToString();    return false;       }  }  public bool getweb(string strURL,out string buf,string postData)  {   buf="";   try   {           ASCIIEncoding encoding = new ASCIIEncoding();    byte[] data = encoding.GetBytes(postData);    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);    request.Method = "POST";    request.ContentType = "application/x-www-form-urlencoded";    request.ContentLength = data.Length;    Stream newStream = request.GetRequestStream();    newStream.Write(data, 0, data.Length);    newStream.Close();                       request.CookieContainer = cc;                       HttpWebResponse response = (HttpWebResponse)request.GetResponse();    cc.Add(response.Cookies);    Stream stream = response.GetResponseStream();    string sHtml = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();    buf=sHtml;    return true;   }   catch (Exception x)   {       buf=x.Message.ToString();    return false;       }  }private   string   getWebresourceFile1(string   url)    {   WebClient   myWebClient   =   new   WebClient();    byte[]   myDataBuffer   =   myWebClient.DownloadData(url);string   SourceCode   =   Encoding.Default.GetString(myDataBuffer);saveSourceCode(SourceCode);                  return   SourceCode;      }
//方法2private   string   getWebresourceFile2(string   url)    {HttpWebRequest   request=(HttpWebRequest)WebRequest.Create(url);  HttpWebResponse   response=(HttpWebResponse)request.GetResponse();                    request.Method   =   "GET ";        Stream   receiveStream=response.GetResponseStream();StreamReader   readStream=new   StreamReader(receiveStream,Encoding.Default);string   SourceCode=readStream.ReadToEnd();    saveSourceCode(SourceCode);response.Close();      readStream.Close();return   SourceCode;      }
//方法3private   string   getWebresourceFile3(string   url)      {WebClient   wc   =   new   WebClient();wc.Credentials   =   CredentialCache.DefaultCredentials;Byte[]   pageData   =   wc.DownloadData(url);string   SourceCode   =   Encoding.Default.GetString(pageData);saveSourceCode(SourceCode);wc.Dispose();  return   SourceCode;      }
//方法4private   string   getWebresourceFile4(string   url)    {WebClient   wc   =   new   WebClient();wc.Credentials   =   CredentialCache.DefaultCredentials;Stream   resStream   =   wc.OpenRead(url);StreamReader   sr   =   new   StreamReader(resStream,System.Text.Encoding.Default);string   SourceCode   =   sr.ReadToEnd();saveSourceCode(SourceCode);resStream.Close();wc.Dispose();  return   SourceCode;      }
//方法5private   string   getWebresourceFile5(string   url)      {WebRequest   request   =   WebRequest.Create(url);WebResponse   response   =   request.GetResponse();Stream   resStream   =   response.GetResponseStream();  StreamReader   sr   =   new   StreamReader(resStream,   System.Text.Encoding.Default);string   SourceCode   =     sr.ReadToEnd();saveSourceCode(SourceCode);resStream.Close();  sr.Close();return   SourceCode;      }

原创粉丝点击