string PageUrl = "http://bbs.dvbbs.net/dispbbs.asp?boardID=11&ID=1245032&page=1";
                WebRequest request = WebRequest.Create(PageUrl);
                WebResponse response = request.GetResponse();
                Stream resStream = response.GetResponseStream();
                StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
                string text = sr.ReadToEnd();
                resStream.Close();
                sr.Close();我用以上代码抓取网页代码,可返回的是中间步骤代码,请问我该怎么执行这些代码得到我想要的结果?以下为中间代码:
<html><body><script language=javascript>document.cookie = "__fwsignature__=jdfwacd4cdff";window.location = "/dispbbs.asp?boardid=11&id=1245032&page=1";</script></body></html>
拜托大虾了,谢谢

解决方案 »

  1.   

    我想要的是执行完中间代码
    <html><body><script language=javascript>document.cookie = "__fwsignature__=jdfwacd4cdff";window.location = "/dispbbs.asp?boardid=11&id=1245032&page=1";</script></body></html>
    返回的结果代码
    如果用IE打开http://bbs.dvbbs.net/dispbbs.asp?boardID=11&ID=1245032&page=1你会发现源文件代码不是上面的中间代码,但是我在C#里提取该网页地址时却得到上面的中间代码,请问该怎么做?
      

  2.   

    你的意思是通过程序得到的网页代码和直接从IE中打开的不一样是吧。真实的网页应该是二次请求,如果是这样的话WebRequest,WebResponse比较难实现的,还是用SOCKET吧
      

  3.   

    System.Net.HttpWebRequest hwq=(System.Net.HttpWebRequest)System.Net.WebRequest.Create(URL);
    System.Net.HttpWebResponse hwr=(System.Net.HttpWebResponse)hwq.GetResponse();
    System.IO.Stream sm=hwr.GetResponseStream();
    System.IO.StreamReader sr=new System.IO.StreamReader(sm);
      

  4.   

    public string LoadURLData(string url)
        {
            System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
            System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
            System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
            return reader.ReadToEnd();
        }测试通过的 很爽的代码!
      

  5.   

    用indexof来做,例如下面截取<!--新闻开始-->,到结束这段的代码 
     private string getHtmlCode(string url)
            {
                string resultHtmlCode;
                WebClient wc = new WebClient();
                byte[] pageData = wc.DownloadData(@url);
                resultHtmlCode = Encoding.Default.GetString(pageData);
                return resultHtmlCode;
            }        private string getNewsList(string htmlCode)
            {
                int startPos, endPos, codeLenth;
                startPos = htmlCode.IndexOf("<!--新闻开始-->", 1);
                startPos = startPos + 11;
                endPos = htmlCode.IndexOf("<!--新闻结束-->", startPos);
                codeLenth = endPos - startPos;
                string newsList = htmlCode.Substring(startPos, codeLenth);
                return newsList;
            }        private void showNewsList()
            {
                string url = "http://news.sina.com.cn/news1000/index.shtml";
                string htmlCode = getHtmlCode(url);
                string newsList = getNewsList(htmlCode);
                Response.Write(newsList);
            }