码迷,mamicode.com
首页 > 其他好文 > 详细

(工作总结-途家)关于途家网爬虫的一点总结

时间:2020-12-30 10:46:22      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:相关   参数   业务需求   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!