1)网址如http://XXXXXXXXXXXX.php?id=0&p=1,变动的只有id和p 一个id下对应有10个页面,如何获得每个网址下对应的html文件并保存到文件中,然后如何解析内容获得所需要的数据?2)现在使用了webBrowser控件,如何通过该控件得到网页的html?我用:
string strURL = txbURL.Text.Trim();
webBrowserContent.Navigate(strURL);
string txt = webBrowserContent.Document.Body.InnerHtml;总是显示:NullReferenceException未将对象引用设置到对象的实例。3)假如不使用webBrowser控件,通过:
        public string GetHtml(string url)
        {
            Uri uri = new Uri(url);
            WebRequest wr = WebRequest.Create(uri);
            Stream s = wr.GetResponse().GetResponseStream();
            StreamReader sr = new StreamReader(s,Encoding.UTF8);
            return sr.ReadToEnd();
        }
html代码总是和网页不一致,需要先登录网页, 如何实现网页登陆?

解决方案 »

  1.   


    WebBrowser += DocumentCompleted=new.....这里DocumentCompleted才能获取
    if(((WebBrowser)sender).ReadyState == WebBrowserReadyState.Completed)
    {
       string txt = webBrowserContent.Document.Body.InnerHtml;
    }
      

  2.   

    WebBrowser. DocumentCompleted +=new.....后面智能生成了
      

  3.   

    WebBrowser webb = new WebBrowser();
    webb.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(webb_DocumentCompleted);        void webb_DocumentCompleted(object sender,WebBrowserDocumentCompletedEventArgs e)
            {
                WebBrowser web=(WebBrowser)sender;
                if (web.ReadyState == WebBrowserReadyState.Completed)
                {
                    string txt = web.Document.Body.InnerHtml;
                }
            }
      

  4.   


    += 之后 连按两下 Tab 键
      

  5.   


    这个我确实没明白什么意思:
    string strURL = txbURL.Text.Trim();
    webBrowserContent.Navigate(strURL);
    string txt = webBrowserContent.Document.Body.InnerHtml;
    怎么判断呢?
      

  6.   

    webb.DocumentCompleted+=new xxx 事件处理。
      

  7.   

    算了直接上简单办法把
    string strURL = txbURL.Text.Trim();
    webBrowserContent.Navigate(strURL);
    while (web.ReadyState != WebBrowserReadyState.Completed)
    {
       Application.DoEvents(); 
    }
    string txt = webBrowserContent.Document.Body.InnerHtml;