C#Winformアプリケーションを使用してWebソースファイルを取得する方法
2860 ワード
C#Winformアプリケーションで、Webページのソースファイルを取得するには、次の方法を使用します.
まず名前空間using Systemを導入する.IO; using System.Net;
添付、c#はウェブページのソースコードのコード例を取得します.C#指定されたWeb HTMLの元のコードを取得するには、WebClient WebRequest HttpWebRequestの3つの方法が使用できます.もちろんwebBrowseも使えますし、興味のある方は、自分で検討してみてください.
1,WebClient方式
2,WebRequest方式
3,HttpWebRequest方式
注意:「utf-8」は、指定したWebページの符号化に対応する必要があります.要約HttpWebRequest方式は最も複雑であるが,より多くの選択性を提供している.クライアントのUserAgentを検出するサイトもあります!163.comは、WebClient WebRequest方式で取得すると、エラーメッセージページの内容が取得されます.HttpWebRequestにはこの問題はありません.テスト環境:WIN 2003+VS 2005+C#+winForm
まず名前空間using Systemを導入する.IO; using System.Net;
WebClient MyWebClient = new WebClient();
MyWebClient.Credentials = CredentialCache.DefaultCredentials;// Internet
Byte[] pageData = MyWebClient.DownloadData("http://www.baidu.com");
//string pageHtml = Encoding.Default.GetString(pageData);
FileStream file = new FileStream("C:\\test.html", FileMode.Create);
file.Write(pageData, 0, pageData.Length);
添付、c#はウェブページのソースコードのコード例を取得します.C#指定されたWeb HTMLの元のコードを取得するには、WebClient WebRequest HttpWebRequestの3つの方法が使用できます.もちろんwebBrowseも使えますし、興味のある方は、自分で検討してみてください.
1,WebClient方式
private string GetWebClient(string url)
{
string strHTML = "";
WebClient myWebClient = new WebClient();
Stream myStream = myWebClient.OpenRead(url);
StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("utf-8"));
strHTML = sr.ReadToEnd();
myStream.Close();
return strHTML;
}
2,WebRequest方式
private string GetWebRequest(string url)
{
Uri uri = new Uri(url);
WebRequest myReq = WebRequest.Create(uri);
WebResponse result = myReq.GetResponse();
Stream receviceStream = result.GetResponseStream();
StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8"));
string strHTML = readerOfStream.ReadToEnd();
readerOfStream.Close();
receviceStream.Close();
result.Close();
return strHTML;
}
3,HttpWebRequest方式
private string GetHttpWebRequest(string url)
{
Uri uri = new Uri(url);
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri);
myReq.UserAgent = "User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705";
myReq.Accept = "*/*";
myReq.KeepAlive = true;
myReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
HttpWebResponse result = (HttpWebResponse)myReq.GetResponse();
Stream receviceStream = result.GetResponseStream();
StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8"));
string strHTML = readerOfStream.ReadToEnd();
readerOfStream.Close();
receviceStream.Close();
result.Close();
return strHTML;
}
注意:「utf-8」は、指定したWebページの符号化に対応する必要があります.要約HttpWebRequest方式は最も複雑であるが,より多くの選択性を提供している.クライアントのUserAgentを検出するサイトもあります!163.comは、WebClient WebRequest方式で取得すると、エラーメッセージページの内容が取得されます.HttpWebRequestにはこの問題はありません.テスト環境:WIN 2003+VS 2005+C#+winForm