最近刚学到httpWebRequest,使用的时候遇到些麻烦,想请问各位大大看是怎么回事。正常情况下,页面抓取是没问题的, 但是有些网站似乎在request的时候必须要附带cookie,而要获得cookie,似乎必须要得到对方网站的response才行,那么,如果对方不给response怎么办呢?比如大众点评网,就不能直接获得response,这个时候,我要怎么做才能取得response呢?应该有办法的吧?不然google、baidu这些搜索引擎的bot怎么去它那爬啊。像点评网这样的网站,用ie可以正常浏览的,那么在本地的文件夹里面可以找到该网站的cookie,那么,可不可以把这样得来的cookie放到request里面去呢?可以的话怎么做才行得通? 不可以的话,又用什么方法呢?谢谢先:)还望大大不吝指点:)

解决方案 »

  1.   

    这个和Cookie没有关系
    大众点评网的服务器,可能有检查请求的 UserAgenthttpWebRequest.UserAgent = "Mozilla/4.0";
    这样就能正常了。
      

  2.   

    给你段代码吧,做了好多项目都用他  WebRequest Wrq = WebRequest.Create(strUrl);
            WebResponse Wrs = Wrq.GetResponse();
            Stream strm = Wrs.GetResponseStream();
            StreamReader sr = new StreamReader(strm, System.Text.Encoding.GetEncoding("UTF-8"));
            string allstrm;
            allstrm = sr.ReadToEnd();
      

  3.   

    http包是这样的Accept: */*
    Referer: http://www.jxxgx.com/Default.aspx
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    If-Modified-Since: Fri, 14 Nov 2008 00:05:39 GMT
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MathPlayer 2.0; .NET CLR 2.0.50727; Chinarank Toolbar)
    Host: www.jxxgx.com
    Proxy-Connection: Keep-Alive
    Pragma: no-cache
    Cookie: cck_lasttime=1226624352557; cck_count=2; user=checked=no模拟下就OK了
    有些请求页面需要上个请求页的数据这时候你需要先请求原始页面然后把原始页面返回的数据保存,在一起发送到下一个请求页面
      

  4.   

    楼上各位  谢谢啦  
    XPingguo兄弟最先回答  就给你啦