客户需求
客户是做电商的, 需要在各个平台上传自家的商品. 平时会观察商品在特定关键词下的搜索排名. 淘宝有很多的数据平台, 可以方便地获取商品排名. 但是闲鱼这种数据平台很少, 平时他们都是人工用很多账号手动搜索记录排名, 所以期望做一个可以自动搜索关键词排名的软件.
技术设计
我心里想的有两种方式:
- 反编译闲鱼app, 在代码中找到商品搜索相关的api, 然后通过frida注入, 把网络请求转发到一个端口, 然后在这个特定的端口就可以直接解析数据了.
- 通过一些自动控制包, 自动搜索关键词, 然后读取手机屏幕的商品描述, 定位商品的排名
第一种方式优点是稳定, 数据准确性高. 缺点是需要熟悉逆向的一些技术, 还要懂一些java. 关键是这样算是修改了app原来的代码, 有法律风险.
第二种方式的优点是代码简单, 不需要额外去研究app的代码, 缺点是获取的排名没那么精准, 不是很稳定.
我经过权衡之后, 选了第二种方式
具体实现
- 在电脑上运行一个通过adb控制手机的程序, 这里推荐python的airtest包, 是网易开源的自动控制的包
- 通过数据线连接多个手机, 类似下面这个样子
3. 运行脚本, 自动控制不同的口的手机, 让他们自动去搜索特定的关键词, 然后下滑, 找到商品的排名, 然后把数据回传到电脑
4. 电脑搜集所有数据之后, 生成一个excel表, 给客户导出查看