我通过下面的代码抓取页面,抓取到的数据总是不全,有一个table总是抓不到
同时,用遨游右击功能的查看选定区域源代码,可以看到这个table
但如果右击查看源文件就看不到这个table了,是什么原因呢
        private string GetWebContent(string Url)
        {
            string strResult = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                //声明一个HttpWebRequest请求
                request.Timeout = 30000;
                //设置连接超时时间
                request.Headers.Set("Pragma", "no-cache");
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                Encoding encoding = Encoding.GetEncoding("GB2312");
                StreamReader streamReader = new StreamReader(streamReceive, encoding);
                strResult = streamReader.ReadToEnd();
            }
            catch
            {
                MessageBox.Show("出错");
            }
            return strResult;
        }

解决方案 »

  1.   

    你把HTML源代码贴出来。我估计可能是一部分HTML代码是靠JavaScript动态产生的。要想捕获这些比较难,可以手工分析它的JS代码。也可以用WebBrowser控件。
      

  2.   

    你先调试一次 在strResult时候将里面的字符串 复制出来 再看里面有没有你要的那table的数据 
      

  3.   

    你这request里没有关联cookies 看看那个TABLE是否要权限才能生成
    没有cookies就意味着没有session
      

  4.   

    那为什么右击查看原文件也看不到这个table呢
      

  5.   

    1、这个table可能放在iframe中。
    2、这个table是js生成的。
      

  6.   

    查看是编译后的htnl代码
    WebResponse   response   =   request.GetResponse();   
    Stream   resStream   =   response.GetResponseStream();     
     StreamReader   sr   =   new   StreamReader(resStream,   System.Text.Encoding.Default);   
    string   temp= sr.ReadToEnd();   
    试试