有没有人知道呀?http://video.shishicai.cn/haoma/hljssc/list/84.aspx这个网站 ...谢谢了 各位 private static string GetPageData(string url)
{
if (url == null || url.Trim() == "")
return null;
WebClient wc = new WebClient();//定义
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(url);
return Encoding.UTF8.GetString(pageData);//.ASCII.GetString
}
pageData 里面为空 就说明 这个网页我没有获取到东西
{
if (url == null || url.Trim() == "")
return null;
WebClient wc = new WebClient();//定义
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(url);
return Encoding.UTF8.GetString(pageData);//.ASCII.GetString
}
pageData 里面为空 就说明 这个网页我没有获取到东西
{
StringBuilder sb = new StringBuilder();
string str = "http://topic.csdn.net/u/20110531/01/25c66329-d9ba-430c-9c63-7284b9ce15fd.html?2934";
WebRequest wrq = WebRequest.Create(str);
WebResponse wrs = wrq.GetResponse();
using (StreamReader dr = new StreamReader(wrs.GetResponseStream(), Encoding.GetEncoding("utf-8")))
{
string content = dr.ReadToEnd();//这里获取全部内容
Response.Write(content);
}
}整进去 看输出什么。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
无标题页
</title></head>
<body>
<form name="form1" method="post" action="Test.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGSz6hZOmfjcwJHI2kNyQ3UxB7gLog==" />
</div>
<div>
</div>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
无标题页
</title></head>
<body>
<form name="form1" method="post" action="Test.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGSz6hZOmfjcwJHI2kNyQ3UxB7gLog==" />
</div>
<div>
</div>
</form>
</body>
</html>
C#获取指定网页HTML原代码可使用 WebClient WebRequest HttpWebRequest 三种方式来实现。当然也可使用webBrowse!在此就不研究webBrowse如何获取了。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; } 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; } 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; } 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; } 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();
//www.elivn.com
StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8")); string strHTML = readerOfStream.ReadToEnd(); readerOfStream.Close(); receviceStream.Close(); result.Close(); return strHTML; } 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”应与指定网页的编码对应。总结
可以看到HttpWebRequest 方式最复杂,但确提供了更多的选择性。有的网站检测客户端的UserAgent!如163.com,你如果使用WebClient WebRequest方式获取时,将获取到的是错误提示页面内容。而通过HttpWebRequest 就没问题。源码下载
http://files.cnblogs.com/zjfree/GetHTML.rar