IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Auto.js抓取移动端数据实战 -> 正文阅读

[移动开发]Auto.js抓取移动端数据实战

事情是这样的,最近做闲鱼,就是在闲鱼上面卖拼多多的商品。把拼多多的商品上架到闲鱼,顾客下单后,就去拼多多用顾客的地址给下单购买。

我以前也在想一个问题,同一个商品,拼多多的价格比闲鱼低得多,为啥还是有人在闲鱼上面买东西。

首先大家都知道闲鱼是一个二手商品交易平台,上面的东西便宜,性价比又不错,自然深受很多人喜欢,比如我,也在闲鱼上面淘了一些使用的宝贝。

当用户习惯使用某个app去购物的时候,他很少会与其它平台比价,信息差就这样诞生了。这就促生了"无货源一件代发"的模式。

一、现实的需求

呃,(⊙o⊙)…,跑题了,因为我闲鱼上面出售的商品,拼多多商家很多都是发的极兔速递,而极兔速递的运单号无法录入拼多多平台,用户不能自主查看物流信息。单少还好,单多起来,查一个物流信息要把拼多多整个"待收货"列表都看一遍…眼花缭乱。

所以,现实的需求就来了,如何把拼多多"待收货"的数据拉取下来,存入数据库,在数据库中检索?

我想过用抓包的方式,想了10秒钟,我就放弃了这个方案。

我的预想是这样的,就是能模拟我手动查件的操作(因为后期会开发在闲鱼上自动回复用户物流信息的功能),然后把数据获取下来,存入数据库中。

那么,Auto.js就闪亮登场了。

Auto.js出自一位1996年的大神,在Android上支持Node.js的JavaScript自动化和编程软件。可以模拟点击、滚动屏幕的操作以及获取页面节点信息等等,强大得不要不要的。

二、实现过程

要运行auto.js的脚本,首先你需要一台Android手机,Android版本不要太低,其次需要运行auto.js的app(新版的需要付费,老版的不需要,获取见文末)。

安装好的auto.js软件这这样的:
在这里插入图片描述

右侧是它的悬浮窗,点击悬浮窗可以进行一些操作。比如运行手机上的脚本,录屏,查看屏幕布局元素信息等。

2.1 开发环境准备

auto.js的脚本可以使用VSCode进行编写和调试。

在VSCode插件中搜索hyb1996进行插件的安装。安裝后,快捷键"ctrl+shift+p"可以调出脚本的基本操作:Run On DeviceSave On DeviceStart Serve等操作。

要想调试我们的脚本,需要手机和电脑在同一局域网,先运行Start Serve后再在手机上点击连接电脑,输入电脑的IP就可以连接成功,执行Run On Device就可以把编写的脚本运行在手机上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上在这里插入图片描述

还有,因为我们需要获取手机上面某个点击点的坐标,需要把手机上的坐标尺打开哦!

打开VSCode的调试控制台"Help"——>“Toggle Develop Tools”,用于查看控制台输出。

2.2 如何编写脚本

auto.js的脚本使用JS来编写的,了解JS语法就可以了。他的接口文档有很多强大的功能(自行查阅),比如获取屏幕某个文字对应的元素,滚动屏幕,延时,点击等等。

toast("开始搬砖..."); // 提示

click(500, 200); // 点击坐标(500, 200)

let 联系商家 = text("联系商家").findOne(); // 获取屏幕中"联系商家"的元素并点击
联系商家.click();

// 模拟从坐标(x1, y1)滑动到坐标(x2, y2),并返回是否成功。
// 只有滑动操作执行完成时脚本才会继续执行。
swipe(100, 1500, 100, 1262, 500)

sleep(1000); // 通常在执行滚动后,都需要休息一下

使用上述方法,就可以实现模拟手动点击的功能了:点击某一个订单,进入详情,点击返回按钮,滚动到下一个订单位置,再次进入详情,以此循环。

2.3 获取屏幕数据

只要能获取屏幕上面所有的文本,就可以通过截取等操作获取我们想要的数据,毕竟页面数据格式都是一样的,我们的需求差不多就实现了80%了。

通过获取屏幕上类名为TextViewandroid.view.View所有的元素节点,通过元素的属性方法text()就可以获取元素节点的文本了。核心代码如下:

function getScreenallTextArr() {
  let fas = "";
  let fsfan = className("TextView").find();
  for (let i = 0; i < fsfan.length; i++) {
    let ftxt = fsfan[i].text();
    if (ftxt != "") {
      if (fas == "") {
        fas = ftxt;
      } else {
        fas = fas + "_$_" + ftxt;
      }
    }
  }
  fsfan = className("android.view.View").find();
  for (i = 0; i < fsfan.length; i++) {
    ftxt = fsfan[i].text();
    if (ftxt != "") {
      if (fas == "") {
        fas = ftxt;
      } else {
        fas = fas + "_$_" + ftxt;
      }
    }
  }
  return fas.split("_$_");
}

2.3 需求梳理

到这里,我们的需求就已经实现了。你可以打开拼多多"待收货"列表,我们再来梳理一下流程。

  • 1、进入"待收货"列表,我们向上滚动一段空白区域——"去抢购"那个区块后,第一个订单就在最上面了。
    swipe(100, 1500, 100, 1262, 500);
  • 2、我们每次进入订单详情,都是点击页面上同一个点,这个点需要根据手机屏幕来确定,只要能进入详情就可以了。
    click(368, 600);
  • 3、进入详情页面后,调用getScreenallTextArr方法获取页面上所有文本组成的集合,物流状态,收款人,电话等信息都是在特定位置显示的,可以通过切割数组获取到我们想要的数据。通过Auto.js的HTTP模块就可以把数据输送到后台。
  • 4、点击左上角的返回按钮,进入订单列表页面,把下一个订单滚动到顶部,再次点击,依次循环。
    swipe(100, 1500, 100, 645, 1000);

三、效果展示

我们进入订单详情,执行getScreenallTextArr就可以获取页面的数据了。
在这里插入图片描述

在这里插入图片描述

结果就粗来啦~~~
在这里插入图片描述
在这里插入图片描述

四、后期扩展

在闲鱼app上自动推送用户的物流信息。与获取拼多多订单信息类似,通过滚动屏幕,点击按钮等操作就可以实现了。

五、申明

此篇文章仅做技术交流,切勿用于非法操作!

欢迎关注公众号【前端技术驿站】
回复12345获取闲鱼运营视频
回复23456获取老版auto.js

更多文章

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:28:21  更:2021-08-29 09:30:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:46:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码