color007
color007
2015-03-24 11:53

httpclient怎么抓取最终跳转的网站数据?

  • 爬虫
  • java
  • 抓取数据
  • 重定向
  • httpclient

公司要做个内部系统,抓取某个网站的数据,而那个网站是抓取淘宝的数据。

其中有个页面很复杂,搜索关键词后,跳转到当前页面,当前页面有个javascript 跳转淘宝请求数据。

(当我在他们网站搜索时,他们 是抓取淘宝数据的缓存到自己的网站,然后展现出来。
当我直接在地址栏拼接他们获取数据的地址时,发生了跳转,跳到淘宝去了。)

重点那个js的那个地址是他们网站的地址,然后再跳转到淘宝请求数据的

我的httpclient怎么抓到跳转的最终页面,也就是那个全是json数据的页面?

地址栏拼接参数跳转的最终页面

我自己的httpclient 抓取的静态方法如下:

 public String reqget(String url,String params){

        String paramsencode=null;
        HttpClient client=new   DefaultHttpClient();
        //获得服务器保存的coockie
        String cookieStr = "";
        List<Cookie> list = cs.getCookies();
        for (Cookie cookie : list) {
            cookieStr += cookie.getName() + "=" + cookie.getValue() + ";";
        }
        if(params!=""&&params!=null){
            //paramsencode = URLEncoder.encode(params, "GBK");
            url=url+"?"+params;
        }


        //封装Get请求
        HttpGet get=new HttpGet(url);
        get.setHeader("Cookie", cookieStr);     
        HttpResponse response;
        try {           

            //提交get请求
            response=client.execute(get);
            //通过响应的状态编码 判断请求是否成功提交
            if(response.getStatusLine().getStatusCode()==200)
            {
                //获得服务器端的响应结果
                  HttpEntity  respEntity= response.getEntity();

                  String  respStr=EntityUtils.toString(respEntity,"GBK");
                  return respStr;

            }
            //prgDlg.dismiss();
        }   
         catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答