java爬取携程景点门票数据

进入携程官网查询杭州有哪些景点

 

f12 debug可以看到请求了某个接口 得到的数据   我们需要自己分析一下这个接口 需要的参数 请求头等。

我们在爬取的时候可以根据这个接口直接post请求json数据格式的景点信息

简单写一下  需要更详细的可以自己研究一下。

public class test {
    public static void main(String[] args) throws IOException {
        //请求参数   json格式的
//keyword 请求的地方是哪里
        //pidx 指的是当前要请求的页数
//psize  每一页的大小
        String ss="{\"pageid\":103061,\n" +
                "\"searchtype\":2,\n" +
                "\"keyword\":\"杭州\",\n" +
                "\"needfact\":false,\n" +
                "\"sort\":1,\n" +
                "\"pidx\":1,\n" +
                "\"psize\":20,\n" +
                "\"reltype\":1,\n" +
                "\"excepts\":[],\n" +
                "\"filters\":[],\n" +
                "\"isneedf\":true,\n" +
                "\"isintion\":true,\n" +
                "\"imagesize\":\"C_200_130\",\n" +
                "\"assistfilter\":{\"userChooseSite\":\"100065\"},\n" +
                "\"contentType\":\"json\",\n" +
                "\"head\":{\"appid\":\"100013776\",\"cid\":\"09031037411652485539\",\"ctok\":\"\",\"cver\":\"1.0\",\"lang\":\"01\",\"sid\":\"8888\",\"syscode\":\"09\",\"auth\":\"\",\"extension\":[]},\n" +
                "\"ver\":\"7.10.3.0319180000\"}";
        Map headers=new HashMap();//请求头
        headers.put("Content-Type","application/json");
        headers.put("user-agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");//模拟浏览器请求
        HttpClient h=new JavaHttpClient();//自己写一个httpclient的请求
        String s = h.dopost("http://sec-m.ctrip.com/restapi/soa2/12530/json/ticketSpotSearch?_fxpcqlniredt=09031037411652485539",headers,new ByteArrayInputStream(ss.toString().getBytes()),null).getResponseString();
        JSONObject j= JSON.parseObject(s);
        JSONObject da=j.getJSONObject("data");
    }

}

请求后得到的json数据 

想要得到所有的景点信息  那就循环请求组装请求参数中的页数   注意循环请求需要一定的休息时间 否则会ip限制。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值