还是老规矩
饿了么 8.23.2 fiddler4 xposed postman
首先吧饿了么的源代码编译出来待用 然后把fiddler打开准备调试开始找到自己需要的url,
我需要的是"https://restapi.ele.me/swarm/shops/recommend?
用postman调试了一下 发现和原来一样垃圾 没有一个加密参数 主要的就是需要登录验证 主要就是一个绕过登录 我这边想到的办法就是 手动注册然后拿cookie (大家如果有时间也可以自己写一个注册程序) 然后爬数据
首先创建一个队列里面存已经注册好的cookie
下面开多线程爬的时候来取数据
每次发请求的时候去队列里面拿一个登陆cookie,拿到之后开始请求如果请求成功将cookie从新放入队列里面
进入解析阶段 如果失败就不把cookie放入队列里面 并且从新请求 如果在可接受的次数里面都还是没有拿到数据就放弃这次请求
切忌不要一直请求,容易造成死循环 还有在有些情况下拿到返回值之后可能不管用什么编码格式都是乱码 但是在工具上面测试的时候就是正确的这个时候我们就需要考虑是不是返回的gzip格式的数据
可以用 java.util.zip.GZIPInputStream 包装一下在来看
在这次爬数据中还用了一个爬虫技巧地图打点 点越密集得到的数据完整性越高