获取网页的Html源代码和浏览器查看到的源代码不一样,估计是Javascript代码未执行。?string   url=txtURI.Text.Trim();         //获取输入的网页地址WebClient   
wb=new   WebClient();     //创建一个WebClient实例   
byte[]   pagedata=wb.DownloadData(@url);   
string   result=System.Text.Encoding.Default.GetString(pagedata);  
txtHTML.Text=result;
//获得的Html只有110KB 估计是javascript 执行之前的代码。如下面的页面,flashget 和Fiddler 获得的都 170KB
http://www.imagegarden.net/bbs/showthreads_567680_20_1.html在线等,谢谢!Fiddler 的下载地址:http://www.fiddlertool.com/dl/FiddlerSetup.exe

解决方案 »

  1.   

    我基本研究了所有可以搜索出来的 获得html代码的方法,都不能解决问题,都只是获得了请求的数据流 请高手指点,我猜一定是javascript 代码未执行,所以希望找个再次执行javascript 代码的方法 也好,谢谢阿,
      

  2.   

    1、JavaScript不能更改源代码,它虽然能在页面上增删东西,但不能更改页面源代码。
    2、你可以尝试嵌入一个WebBrowser来获取网页,这样就和用浏览器差不多了。
      

  3.   

    为什么网上的全是只获得了,请求返回的数据流,都不是IE最后查看源文件中的内容!?我只想获得和IE查看源文件中的内容一样,难,继续研究中,
      

  4.   

    你要去了解更多HTTP协议的知识,浏览器发送的请求包里面包含了很多信息……
      

  5.   

    Ivony() 你说的 WebBrowser 研究了一下,没找到能返回string 或者stream 的方法 或者属性 ,郁闷,没办法,我实在不会用这个。
      

  6.   

    眼看着帖子石沉大海,不得不顶,获取真正的IE浏览器中的html code.,谢谢。
      

  7.   

    获取网页的Html源代码和浏览器查看到的源代码都是一样的
    你所谓的不一样是指浏览器当前的显示和你所看到的源码的执行显示不同,
    这是由于浏览器执行了你看到的源代码中的script等的缘故,如果想获取表示当前显示的html源码,可以用dom查看器之类的工具,或者按以下操作
    首先在IE中打开某个url,然后在地址栏输入javascript:var s=document.documentElement.outerHTML;document.write(s);回车后,再查看当前的源文件,就是经过动态执行后的实际源码
    测试:
    <html>
    <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=GB2312">
    <title>HTML Editor Contnt</title>
    <script>
    function Add()
    {
    var s="<input><br>";
    document.body.insertAdjacentHTML("afterBegin", s);
    }
    function Out()
    {
    var w=window.open('about:blank');
    var s=document.documentElement.outerHTML;
    w.document.write(s);
    }
    </script>
    </head>
    <body>
    <input type=button onclick='Add();' value='动态增加输入框'><br>
    <input type=button onclick='Out();' value='输出当前源码'><br>
    </body>
    </html>
      

  8.   

    关注,我也想知道是不是除了用WebBrowser得到Domtree,还有没有其他可行的办法
      

  9.   

    我现在用这个方法下载html代码了,不过还是没能解决javastript未执行的问题,
    再次感谢各位网友,结贴(刚搬家才能上网,不好意思,)  
     private static string DownloadDataInInBackgroud(string address)
            {
                WebClient client = new WebClient();  
                client.Encoding = System.Text.Encoding.Default;//读中文。
                // client.Encoding = System.Text.Encoding.UTF8;//不读中文。
                Uri uri = new Uri(address);//判定URL是否正确!
                string reply = client.DownloadString(uri);
                return reply;
            }