标签:相关 参数 业务需求 debug 现在 新版本 文件 手机 一点
由于公司民宿的业务需求,需要
- 在未登录情况下基于爬虫针对途家网的房源的房态、价格、房源信息、上下架情况等进行实时追踪,
- 在登录情况下,同步房东端的房源、订单、账单等信息;
- 在登录情况下,完成房东房源的开关房、上下架、改价、改库存等操作;
- 完成自动登录获取cookie的操作;
**其中房态与价格为业务核心**
1.PC网页阶段;
2.手机H5阶段;
3.旧版本APP阶段;
4.APP逆向阶段;
5.佛系阶段;
1.PC网页阶段:
-此时期,所有爬虫模块均为基于scrapy的单机式爬虫,业务量规模较小,所有接口均为途家网网页端接口;
-工作难点在于接口的js加密的逆向,破解TJH等相关参数的生成方式,debug时会有无限死循环函数导致chrome卡死,最终解决方案是一步一步单步调试,完全破解加密参数,使用python重写js的加密逻辑,也可以使用execjs调用js核心代码;
2.手机H5阶段:
-基于PC接口破解的方式存在两个弊端,一是途家TJH加密版本经常升级,导致爬虫也失效;二是会产生假的数据,脏数据会污染生产环境。在某个版本后发现途家h5端虽有加密参数但是加密参数不生效,遂改成此接口,但不久h5接口亦有加密参数,因此该阶段只是过渡;
3.旧版本APP阶段:
-由于网页易升级的弊端,因此切换为老版本途家APP,使用flidder抓包,虽有加密参数,然亦未做处理,该版本稳定一段时间后失效;
4.APP逆向阶段:
-使用新版本途家APP,使用flidder抓包,其中核心的房态与价格功能均加密,初期其虽有加密参数,但校验比较松散,经不断升级调整,其请求头的header与payload的数据耦合性极高。
-最终解决办法是基于jadx与IDA分析源代码,找出其加密.so文件,使用frida注入运行状态的app以调用生产加密参数的静态函数,并使用Flask发布接口获取frida的结果;
5.佛系阶段:
-可以看出途家做了极多的反爬措施,无论是假数据、js加密,还是各种极高耦合性的加密参数,还是IP或者登陆校验,以至于现在取消了PC网页端的情况,但目前来看都不是很难攻克。
标签:相关 参数 业务需求 debug 现在 新版本 文件 手机 一点
原文地址:https://www.cnblogs.com/juzheng/p/tujia.html