当前位置:编程学习 > C#/ASP.NET >>

网页源代码获取的方法。。。【求助!!】

要获取网页源码的地址是 : 
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)
        {
            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 "";
            }

        }
--------------------编程问答-------------------- 很简单。。用httpwatcher之类的插件,在浏览器中点击你想下载的源码页面,通过插件查看浏览器打开这个页面时发送的http请求是什么样的,复制下来,用socket直接发到这个网站的服务器,recieve的就是页面的源码。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,