有一种在浏览器地址栏输入javascript代码显示网页加密前的源代码 那么如何用WebClient或者其他的实现用这个javascript代码下载网页的源码啊??

解决方案 »

  1.   

    你所說的“在浏览器地址栏输入javascript代码显示网页加密前的源代码”指的是什么?能舉個例子嗎?
      

  2.   

    string html=WebClient.DownloadString("http://www.baidu.com");
    试试看,html变量就是存储的html代码。
      

  3.   

    比如在百度网页 在地址栏里把www.baidu.com改成javascript:jannick=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=jannick; 
    回车就显示源代码啦,对于一些加密过源码的网页也可以显示出来,我怎么下载这源码呢?要用上这个javascript代码
      

  4.   

    用HttpAnalyzer(这是专门分析Http协议的)看看有没有发送请求给服务器,如果有也许下边的例子会对楼主有所帮助
    /// <summary>
            /// 通过HttpHeader,cookie,PostData(byte[])返回网页文本字节流并获取HTTP头
            /// </summary>
            /// <param name="server"></param>
            /// <param name="URL"></param>
            /// <param name="byteRequest"></param>
            /// <param name="cookie"></param>
            /// <param name="header"></param>
            /// <returns></returns>
            public static byte[] GetHtmlByBytes(HttpHeader httpHeader, byte[] byteRequest, ref string cookie, out string header)
            {
                HttpWebRequest httpWebRequest;
                HttpWebResponse webResponse;
                Stream getStream;            httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(httpHeader.SubmitWebPag);
                CookieContainer co = new CookieContainer();
                co.SetCookies(new Uri(httpHeader.Host), cookie);
                httpWebRequest.CookieContainer = co;            httpWebRequest.ContentType = httpHeader.ContenType;
                httpWebRequest.Accept = httpHeader.Accept;
                httpWebRequest.Referer = httpHeader.Referer;
                httpWebRequest.UserAgent = httpHeader.UserAgent;
                httpWebRequest.Method = httpHeader.Method;
                httpWebRequest.ContentLength = byteRequest.Length;
                Stream stream;
                stream = httpWebRequest.GetRequestStream();
                stream.Write(byteRequest, 0, byteRequest.Length);
                stream.Close();
                webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                header = webResponse.Headers.ToString();
                cookie = webResponse.Headers.Get("Set-Cookie");
                getStream = webResponse.GetResponseStream();
                byte[] outBytes = ReadFully(getStream);
                getStream.Close();
                return outBytes;
            }
      

  5.   

    private string getHtml(string url, string charSet) 
            {   
                WebClient myWebClient = new WebClient();                myWebClient.Credentials = CredentialCache.DefaultCredentials;   
                byte[] myDataBuffer = myWebClient.DownloadData(url);   
               string strWebData = Encoding.Default.GetString(myDataBuffer);    
                Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);   
                string webCharSet = charSetMatch.Groups[2].Value;   
                if (charSet == null || charSet == "")   
                    charSet = webCharSet;   
       
                if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)   
                    strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);   
                return strWebData;   
            }  
      

  6.   

    document.documentElement.outerHTML获取网页源码
    还可使用
    Set xmlobject = CreateObject("Microsoft.XMLHTTP") 
    xmlobject.Open "GET", strURL, False 
    xmlobject.Send  
    或webbrowser