我想获取网页上一个链接,但是这个链接是通过js加载出来的,用下这个代码获取总是js加载完成前的源码,怎么才有得到js加载完成后的网页呢?
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Timeout = 30000;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();                
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
                strResult = readStream.ReadToEnd();
                if (request.HaveResponse)
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return strResult;HttpWebRequest

解决方案 »

  1.   

      webbrowser documentComplete判断当前加载网页位置以及页面,然后获取页面源码。
      

  2.   

    HttpWebRequest好像没有提供加载完成的判断的,建议使用WebBrowser的documentComplete来获取完整页面代码,具体实现参考:http://www.cnblogs.com/ceachy/articles/CSharp_Retrive_Page_Document.html
      

  3.   


    谢谢两位的热心回答其实是这样的,那个网页上我想要的链接是个下载链接,WebBrowser我试过,直接用webbrowser打开这个网页的时候,它会弹出保存的提示框,然后让我选择保存的路径,但是我想让它直接保存到某个路径,网上找了找也没找到相关的代码,所以就用了HttpWebRequest,想从获取的网页代码里找到下载链接,然后再用httpwebrequest下下载链接来下载文件,但是得到的加载完成前的网页代码,所以就不知道怎么办了。那么有没有不让webbrowser不弹出选择保存路径,自动保存到某路径的方法,别的什么方法可以下载那个文件呢
      

  4.   

    webbrowser可以执行js,所以能弹出保存对话框。但是HttpWebRequest就不能执行js了。
    可以从网页源码中获取js代码解析出url,但是网页的js也可能是调用了另外一个js文件的函数,这样就要再去解析那个js文件,一直到找到需要的url为止,这时就可以再用HttpWebRequest去访问找出的那个url了。
      

  5.   


    谢谢,不过我没用js,也不会解析js代码..........应该怎么做呀?
    另外,除了webbrowser和httpwebrequest,有没有别方法可以实现网页里的那个文件自动下载到本地路径呢?