本帖最后由 ray8876 于 2021-4-6 09:01 编辑
哈哈 不好意思啊 第一次发不会发 第一次发错版块了 第二次发图片就没了 代码不会放 我直接放文本吧
***********************************************************************分割***************************************************************************(本人萌新小白,今年周年庆刚注册的账号,初来乍到,如有不对,请多多指教、、)
上班摸鱼闲来无事,今天车子又又又借别人了,又想知道他用我的车跑了哪些地方?
领克手机app里可以查询实时的路线,但是总不能每次都拿个手机刷刷刷吧?
官方的不好用,那就自己写一个吧
一、抓包 (fiddler 4)
fiddler上开启代{过}{滤}理,手机连上同一WIFI,设置好代{过}{滤}理。(详细教程可以百度 手机fiddler抓包教程)
多抓几次我终于找到一条有用的数据。
里面有这样两个数据
latitude=110******
longitude=433******
这两个数据从名字上来看就是我们要的经纬度了
但是是两个9位的整数,并不是我们想要大概是120.***,30.***
继续抓包,app内的https请求看不到?(这个能解密吗,反正我解不了)
APP内点击导航(获取当前位置到车辆位置的导航),就能抓到车辆真实位置的坐标了。(类似120.***,30.***)
经过我的多组测试,这个 latitude/longitude 与 真实数据 比例一样(还好不是什么加密算法,不然我这种小白解不开。。)
两个数据分别除以
3599871.118585613
3600273.955449258
就是真实数据了
二、python定时抓包
python 定时抓包并写入数据库 这个代码就不放了 只是基本的抓包存入数据库而已
存入数据库后,大概就是这样。
三、后端springboot
为什么要springboot 因为我想部署到黑群晖上,springboot是我能想到的最方便的办法了
暂时只能获取一整天的数据 后面会完善
@RequestMapping("/byDay")
public String byDay(@RequestParam int yyyy, @RequestParam int mm, @RequestParam int dd){
String date = Integer.toString(yyyy) + '-' + String.format("%02d", mm)+ '-' + String.format("%02d", dd) ;
List<Detail> list = detailService.selectByDay(date);
JSONArray json = new JSONArray();
list.forEach(detail -> {
json.add(JSONObject.toJSON(detail));
});
return json.toString();
}
public List<Detail> selectByDay(String date) {
QueryWrapper<Detail> queryWrapper = new QueryWrapper<Detail>();
queryWrapper.between("editTime",date + " 00:00:00",date + " 23:59:59")
.groupBy("upgradeTime")
.orderByAsc("id");
return detailDAO.selectList(queryWrapper);
}
四、前端vue
为什么要vuejs?我喜欢!
哈哈开玩笑的
哈哈主要以前申请过高德api 直接拿来用 方便第一
代码没多少 不展示了 我就是提供个思路而已
最终效果大概就是这样,最后打包部署到群晖,frp穿透出来,每次手机打开手机网站收藏夹就能获取到车子当天的行程了。
现在只是个DEMO ,后面我会根据自己的喜好和大家的反馈进行改进,大家觉得有意思的话我会考虑整合开源。
萌新第一次发帖,如有问题请指出,我会继续学习
|