如:   
      try
            {
                //获取远程网站代码内容
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);                
                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);
                string strWebContent = streamReader.ReadToEnd();                //对获取的内容进行分析
                int iBodyStart = strWebContent.IndexOf("iMonitor", 0);
                int iTableStart = strWebContent.IndexOf("<table", iBodyStart);
                int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
                string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);
                
                //生成HtmlDocument  
                WebBrowser webb = new WebBrowser();
                webb.Navigate("about:blank");
                HtmlDocument htmldoc = webb.Document.OpenNew(true);
                htmldoc.Write(strWeb);
                HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");
                DataTable dt = new DataTable("seltable");
                dt.Columns.Add("ID", Type.GetType("System.String"));
                dt.Columns.Add("mc", Type.GetType("System.String"));
                dt.Columns.Add("dqz", Type.GetType("System.String"));
                dt.Columns.Add("zt", Type.GetType("System.String"));
                int i = 0;
                foreach (HtmlElement tr in htmlTR)
                {
                    i++;
                    if (i > 3)
                    {
                        string strID = tr.GetElementsByTagName("TD")[0].InnerText;
                        string strmc = tr.GetElementsByTagName("TD")[1].InnerText;
                        string strdqz = tr.GetElementsByTagName("TD")[2].InnerText;
                        string strzt = tr.GetElementsByTagName("TD")[3].InnerText;                        
                    }
                }
            }
            catch
            {
                //EventLog.WriteEntry();
            }但service中用不了WebBrowser ,该如何对返回的代码进行提取?

解决方案 »

  1.   

    直接New一个HtmlDocument不就可以了?
    没有必要通过WebBrowser来生成Document对象HtmlDocument doc = new HtmlDocuemnt();
    doc.Write(strWeb);
      

  2.   

    用WebClient !
    System.Net.WebClient wc = new System.Net.WebClient();
    Byte[] pageData = wc.DownloadData("网页地址");
    string s= System.Text.Encoding.Default.GetString(pageData);
      

  3.   

    string strWebContent = streamReader.ReadToEnd();
    指对strWebContent中的<table>中的各行列值进行取值然后存入数据库
      

  4.   

    System.Net.WebClient wc = new System.Net.WebClient();
    Byte[] pageData = wc.DownloadData("网页地址");
    string s= System.Text.Encoding.Default.GetString(pageData);