想写一个给google提交搜索词,然后处理搜索结果的小程序。使用google api好像结果要少很多,所以放弃。
使用HttpWebRequest提交搜索词,代码如下:            Encoding myEncoding = Encoding.GetEncoding("utf-8");
            string address = "http://www.google.com.hk/search?hl=zh-CN&safe=strict&" + HttpUtility.UrlEncode("q", myEncoding) + "=" + HttpUtility.UrlEncode("test", myEncoding);
            address = address + "&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=";
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
            req.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
            req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";            req.MaximumAutomaticRedirections = 1;
            req.AllowAutoRedirect = true;
            req.Method = "GET";            CookieContainer cookieCon = new CookieContainer();
            req.CookieContainer = cookieCon;            using (HttpWebResponse wr = (HttpWebResponse)req.GetResponse())
            {
                this.webGDemo.DocumentStream = wr.GetResponseStream();
            }代码从网上copy,但是执行到req.GetResponse处,程序报“尝试自动重定向的次数太多”,搜了下,说是cookie初始化的问题。抓包却不知道如何设置,请各位指点。谢谢!

解决方案 »

  1.   

    用的WEBBROWSER么?
    解析比较头疼,TAOBAO等还经常有附加的一些乱七八糟的信息,就是为了防止第三方软件抓取其信息
    google不知道...
      

  2.   

    一个IP请求多了google会临时封掉,弄点代理,轮着上
      

  3.   

    我没有频繁请求,现在只是想模拟IE提交数据包。一直报错。
    没有用WEBBROWSER。
    上面的代码改改百度好像是可以的。
    各位帮忙看看了!
      

  4.   

    如果确实可以重现的话,试着让多个Request共享CookieContainer看看问题是否还在。  CookieContainer cookieCon = new CookieContainer();
      req.CookieContainer = cookieCon;
      

  5.   

    你把MaximumAutomaticRedirections 设置大些试试
      

  6.   

    To isCrazy:不太明白你的意思,我代码里有这个啊!
    To rl0516:我设置为256,结果还是一样。
    抓包显示提交的http结果为302。
      

  7.   

    这种问题一般是站点作了限制,还有就是要登录
    设置MaximumAutomaticRedirections=1;  
     
     
      

  8.   

    抓包看了下,就是cookie的设置不同。但是按照网上代码
    req.MaximumAutomaticRedirections = 1;
      req.AllowAutoRedirect = true;  CookieContainer cookieCon = new CookieContainer();
      req.CookieContainer = cookieCon;还是不行啊。有篇文章说要初始化cookie,我试了,还是没成功。
      

  9.   

    req.MaximumAutomaticRedirections = 9999;
      req.AllowAutoRedirect = true;  CookieContainer cookieCon = new CookieContainer();
      req.CookieContainer = cookieCon;通过了....