网页源代码获取的方法。。。【求助!!】
要获取网页源码的地址是 :http://ytzjzwang.blog.163.com/blog/static/874633082012101610047499/
这个是一个bolg的具体文章页面。
发现很怪。我用下面的方法。都可以获取http://www.163.com的源码。
但是
http://ytzjzwang.blog.163.com/blog/static/874633082012101610047499/
始终获取的都是null。。。
请问用什么办法可以获取这个页面的源码啊。。。
get 方法一。无法获取html 源代码。。。
public static string getHtml11(string strUrl)
{
string strRet = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
request.Timeout = 2000; HttpWebResponse response = (HttpWebResponse)request.GetResponse();
System.IO.Stream resStream = response.GetResponseStream();
Encoding encode = System.Text.Encoding.UTF8;
StreamReader readStream = new StreamReader(resStream, encode);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
while (count > 0)
{
String str = new String(read, 0, count);
strRet = strRet + str;
count = readStream.Read(read, 0, 256);
}
resStream.Close();
}
catch (Exception e)
{
strRet = "";
}
return strRet;
}
get 方法2。无法获取html 源代码。。。
private string getHtml22(string url)
{
WebClient myWebClient = new WebClient();
byte[] myDataBuffer = myWebClient.DownloadData(url);
return Encoding.Default.GetString(myDataBuffer);
} --------------------编程问答-------------------- 你想获取什么源码。。不是用FIREFOX就FIREBUG都可以获取么 --------------------编程问答-------------------- 超时什么的。。
自己调试看看哎
会linux就不用烦这个了,wget轻易搞定 --------------------编程问答-------------------- 我想获取网页源码啊。。。。 --------------------编程问答-------------------- 百度一搜一大把
http://wenku.baidu.com/view/ac773d11cc7931b765ce150b.html --------------------编程问答-------------------- 哎。算料。半天没有一点实质性的。 --------------------编程问答--------------------
第二个参数为空就可以了。。
private string HttpPost(string Url, string postDataStr)--------------------编程问答-------------------- 很简单。。用httpwatcher之类的插件,在浏览器中点击你想下载的源码页面,通过插件查看浏览器打开这个页面时发送的http请求是什么样的,复制下来,用socket直接发到这个网站的服务器,recieve的就是页面的源码。
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
request.CookieContainer = cookie;
request.AllowAutoRedirect = false;
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return "";
}
}
补充:.NET技术 , C#