网络爬虫比较适合搜集web页面数据,但在app当道的时代,很多app根本就没有对应的web网站,所以使用传统的网络爬虫抓取数据已不再适用。最近研究了一下解决方案,发现目前市面上的解决方案要么是java要么是python,门槛有点高,开发和维护成本比较高。最近一直都在研究的冰狐智能辅助号称可以不用编程就可以实现app自动化,今天我们就用它来试下在不编程的前提下如何轻松实现自动抓取app 数据,下面以拼多多为例进行讲解。
https://aznfz.com/document/prepare一定要严格按照文档提示完成所有步骤,否则可能无法正常工作。

准备工作

准备工作

  1. 注册冰狐智能辅助账号
  2. 准备android手机一台
  3. 在android手机中安装并登录冰狐智能辅助app

详细准备过程请查看这里:https://aznfz.com/document/prepare,一定要严格按照文档提示完成所有步骤,否则可能无法正常工作。

业务逻辑

业务逻辑

目标:获取拼多多中价格小于1.6的商品

1.启动拼多多

2.循环浏览商品列表

3.挑选价格小于1.6的商品

具体实现

具体实现

创建自动构建
在网页端「移动端」/「自动构建脚本」中创建一个名为“test”的自动构建,然后点击“配置构建”。所有的业务相关模块都放在main模块中,点击main模块的“编辑”按钮,如下图所示:

打开网易新闻 查看精彩图片

选择模块和配置参数

直接根据上面的业务逻辑来选择对应的业务模块,并配置相关参数
1.启动拼多多,选择“启动App”模块,并配置包名和tag名

打开网易新闻 查看精彩图片

2.循环浏览商品列表,循环滚动页面,选择“循环处理”模块,类型选择永久循环类型

打开网易新闻 查看精彩图片

3.遍历当前的商品列表,选择“遍历容器”模块

打开网易新闻 查看精彩图片

4.挑选价格小于1.6的商品,选择“获取控件文本”模块提取价格

打开网易新闻 查看精彩图片

自动构建模块和参数配置

自动构建模块和参数配置

完整的自动构建模块和配置参数如下,可以直接在自动构建处,点击“test”右边的“配置源码”按钮,把如下配置数据粘贴进去即可自动生成自动构建。

{
"type": "root",
"children": [{
"type": "declareVar",
"var": [{
"name": "temp",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "ret",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "view",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "viewContainer",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "tag",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "item",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "index",
"type": "normal",
"initType": "null",
"initValue": "null"
}, {
"name": "data",
"type": "normal",
"initType": "string",
"initValue": ""
}, {
"name": "text",
"type": "normal",
"initType": "string",
"initValue": ""
}]
}, {
"type": "main",
"desc": "业务逻辑入口",
"debug": false,
"params": [],
"children": [{
"type": "launchApp",
"desc": "启动APP",
"debug": false,
"packageName": "com.xunmeng.pinduoduo",
"tag": "txt:推荐|txt:首页#",
"maxStep": "30",
"children": [{
"type": "loop",
"desc": "循环处理",
"class": "4",
"debug": false,
"children": [{
"type": "scroll",
"desc": "滚动处理",
"class": 1,
"debug": false,
"direction": "up",
"tag": "",
"family": [],
"descendant": [],
"widgetIndex": "0",
"minDistance": "0.98",
"maxDistance": "0.98",
"minScrollCount": "1",
"maxScrollCount": "1",
"minDuration": "500",
"maxDuration": "500",
"beforeWait": "1000",
"afterWait": "1000"
}, {
"type": "traverse",
"desc": "遍历当前商品列表容器",
"class": 1,
"debug": false,
"tag": "cn:android.support.v7.widget.RecyclerView#",
"family": [],
"descendant": [],
"failed": "",
"traverseSelf": false,
"retryCount": "0",
"startIndex": "0",
"lastIndex": "0",
"randomPickCount": "0",
"clickable": false,
"className": "",
"children": [{
"type": "searchView",
"desc": "搜索价格",
"debug": false,
"tag": "txt:¥#",
"root": "item",
"family": [],
"failed": "",
"duration": "500",
"maxStep": "5",
"beforeWait": "0",
"afterWait": "0",
"fetchResultIndex": "0",
"returnVarIsLocal": false,
"children": [{
"type": "dataDeal",
"desc": "数据价格控件",
"debug": false,
"data": "view",
"operate": ["0:nextSibling"],
"returnVarName": "view"
}, {
"type": "getText",
"desc": "获取商品价格",
"class": "2",
"debug": false,
"family": [],
"descendant": [],
"returnType": "float",
"returnVarName": "text",
"returnVarIsLocal": true,
"target": "view"
}, {
"type": "if",
"desc": "判断价格是否满足要求",
"class": "2",
"debug": false,
"family": [],
"descendant": [],
"expr": "(typeof text == 'number') && (text<=1.6)",
"children": [{
"type": "toast",
"desc": "弹出框",
"debug": false,
"textList": ["string-找到价格小于规定的商品了"],
"x": "-1",
"y": "-1",
"duration": "1000",
"beforeWait": "0",
"afterWait": "0"
}]
}],
"false": {}
}]
}]
}],
"false": {}
}]
}],
"desc": "根模块",
"debug": false
}

运行测试

运行测试

请按如下步骤运行测试
1.开启冰狐智能辅助app调试模式

2.把自动构建编译成js脚本,在网页端「移动端」/「自动构建脚本」找到“test”,然后点击右边的“编译”按钮,即可自动生成名为 test 的js脚本。

3.运行js脚本,在网页端「移动端」/「移动端脚本」找到“test”,然后点击右边的“运行”按钮,选择设备,开始执行脚本。