color007
2015-03-24 11:53httpclient怎么抓取最终跳转的网站数据?
公司要做个内部系统,抓取某个网站的数据,而那个网站是抓取淘宝的数据。
其中有个页面很复杂,搜索关键词后,跳转到当前页面,当前页面有个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!=""&¶ms!=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条回答
为你推荐
- 相对于java通过Elastic提供clientapi调用elasticsearch的查询,比直接拼接下面这种查询语句,通过httpclient发送查询的优势在哪里?
- elasticsearch
- 1个回答
- 如何在网页上选择多种表单之一来使用HttpClient POST数据?
- html
- php
- asp.net
- c#
- net
- 1个回答
- 如何在Symfony HttpClient组件的CurlHttpClient中添加具有IP /端口和用户名/密码的代理?
- httpclient
- symfony
- php
- 2个回答
- 如何从HttpClient中检索照片?
- httpclient
- android
- php
- 3个回答
- httpclient 请求过快,导致数据抓取不全
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
换一换