我們抓取一個網頁的信息的時候,一般直接使用HttpWebRequest直接引用,但是由於安全原因,有時候會返回500錯誤,但是在瀏覽器查看源代碼,又是可以打開的,那是由於我們請求的代碼,過了簡單,所以我們使用以下的代碼就可以解決這個問題。
//直接傳入網頁就可以了
public String GetPageCode(string PageURL)
{
string Charset = "utf-8";
try
{
//存放目標網頁的html
String strHtml = "";
//連接到目標網頁
HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(PageURL);
wreq.Headers.Add("X_FORWARDED_FOR", "101.0.0.11"); //發送X_FORWARDED_FOR頭(若是用取源IP的方式,可以用這個來造假IP,對日誌的記錄無效)
wreq.Method = "Get";
wreq.KeepAlive = true;
wreq.ContentType = "application/x-www-form-urlencoded";
wreq.AllowAutoRedirect = true;
wreq.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
wreq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
CookieContainer cookieCon = new CookieContainer();
wreq.CookieContainer = cookieCon;
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
//採用流讀取,並確定編碼方式
Stream s = wresp.GetResponseStream();
StreamReader objReader = new StreamReader(s, System.Text.Encoding.GetEncoding(Charset));
//抓取所有的信息
strHtml = objReader.ReadToEnd();
return strHtml;
}
catch (Exception n) //遇到錯誤,打印錯誤
{
return n.Message;
}
}
[深圳網站建設](https://www.sz886.com)[https://www.sz886.com](https://www.sz886.com)