当前位置: 首页 > news >正文

微信小程序自动化采集方案

本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,拒绝转载,若有侵权请联系我删除!

一、引言

1、对于一些破解难度大,花费时间长的目标,我们可以先采用自动化点击触发请求,拦截数据包的方式先将程序跑起来,今天分享某外卖小程序自动化点击采集方案。

2、拦截数据包,使用Fiddler Script

3、PC端模拟点击使用:pyautogui

4、手机端模拟点击使用:autoxjs

二、Fiddler Script

1、Fiddler Script使用 JScript.NET语言编写。点击Fiddler右上角的FiddlerScript即可进入编写,或者依次点击Fiddler左上角的Rules - Customize Rules 进入编写

2、Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response
修改Request的内容: OnBeforeRequest
修改Response的内容: OnBeforeResponse

3、示例

fiddler中显示为红色:在OnBeforeRequest中添加

if (oSession.HostnameIs("www.baidu.com")) {oSession["ui-color"] = "red";}

修改Request中的body

   if(oSession.uriContains("http://www.baidu.com")){// 获取Request 中的body字符串var strBody=oSession.GetRequestBodyAsString();// 用正则表达式或者replace方法去修改stringstrBody=strBody.replace("1111","2222");// 弹个对话框检查下修改后的body               FiddlerObject.alert(strBody);// 将修改后的body,重新写回Request中oSession.utilSetRequestBody(strBody);}}

域名重定向

//将此段代码放在OnBeforeRequest方法下if(oSession.HostnameIs("www.baidu.com")){oSession.hostname = "www.hao123.com";    
}

替换请求地址

if(oSession.fullUrl.Contains("wx.waimai.meituan.com/weapp/v1/user/favorite/getmyfavorite")){oSession.fullUrl = "http://127.0.0.1:8080/fiddler/getRest";
}

获取Response的内容:在OnBeforeResponse中

oSession.GetResponseBodyAsString()

三、PC端自动化点击

1、使用 python的pyautogui模块实现自动化点击触发请求

2、安装:pip install pyautogui

如果安装不上,一般是网络超时,可以使用:

pip install pyautogui -i http://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com

3、示例:

打印鼠标的坐标:

    mouse = pyautogui.position()array[i][0] = mouse.xarray[i][1] = mouse.yprint(mouse)

调整窗口大小,移动窗口位置:

import pygetwindow as gw# 调整窗口大小
title = "窗口名称"
title_window = gw.getWindowsWithTitle(title)
print(len(title_window))
for window in title_window:# window.moveTo(0, 0)window.resizeTo(250, 500)

获取窗口的坐标

title = "窗口名称"
window = gw.getWindowsWithTitle(title)[0]
print(window.left, window.top)

点击:

pyautogui.click(x, y) 

四、autoxjs

1、手机端模拟点击推荐使用autoxjs, 官网:主页 | autoxjs,文档:http://doc.autoxjs.com/

2、根据教程一步步安装,开启无障碍,编写JS文件,AutoX.js 使用 JavaScript 作为脚本语言,支持 ES5 与部分 ES6 特性。自动操作模块:基于控件,基础坐标。

3、示例

使用前请先开启无障碍(重要)

auto();
log("点击测试开始!");
launchApp("APP名称");
sleep(5000);

常用方法;

  • back() 返回上一个页面

  • sleep(3000)  单位是毫秒

  • launchApp("APP名称"); 打开该APP

  • click("美食", 0)  点击屏幕上识别到的第一个美食

  • click(221, 1323) 点击该坐标

五、Fiddler抓不到微信小程序包的情况需要将Fiddler证书push到系统证书目录

1、Fiddler证书导出到桌面

2、安装 openssl:http://slproweb.com/products/Win32OpenSSL.html

3、将Fiddler cer证书转pem证书:

openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.pem

4、显示pem证书的hash值

openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem

5、生成Fiddler证书的hash值是269953fb ,重命名pem

ren FiddlerRoot.pem 269953fb.0

6、我们需要将该证书文件push到 /system/etc/security/cacerts目录下,需要先获取该目录的写权限,进入 /system/etc/security目录执行 chmod 777 cacerts 

7、如果提示该文件只读,执行以下命令重新挂载

mount -o remount,rw /
或:
mount -o remount,rw /system

8、执行 adb push 269953fb.0 /system/etc/security/cacerts

9、如果直接push提示没有权限,可以先将证书push到 /data/local/tmp目录,再复制到/system/etc/security/cacerts目录

http://www.lryc.cn/news/223800.html

相关文章:

  • 操作系统第三章王道习题_内存管理_总结易错知识点
  • uniapp刻度尺的实现(swiper)滑动打分器
  • cordova Xcode打包ios以及发布流程(ionic3适用)
  • idea中的.idea文件夹以及*.iml文件(新版idea没有*.iml文件了),新旧版idea打开同一个项目会不会出现不兼容
  • 高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路
  • uniapp u-tabs表单如何默认选中
  • 2023年腾讯云双11活动入口在哪里?
  • Windows 下编译 TensorFlow 2.12.0 CC库
  • Spring Boot 中自动装配机制的原理
  • 如何安装Wnmp并结合内网穿透实现外网访问内网Wnmp服务
  • 网工内推 | 上市公司,云平台运维,IP认证优先,13薪
  • Linux安装DMETL4
  • Python中编码声明的方法
  • css设置浏览器表单自动填充时的背景
  • windows系统下查看安卓apk的sha1
  • openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述
  • python编程复习系列——week2(Input Output (2))
  • 为什么HTTP用得很好的,开始普及HTTPS呢?
  • C++day6作业
  • 【 毕设项目源码推荐 javaweb 项目】 基于 springboot+vue 的图书个性化推荐系统的设计与实现(springboot003)
  • FFmpeg编译hevc版本,支持mac、linux系统
  • AI系统ChatGPT程序源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型
  • Unity 3D 调整cube的颜色
  • 数字通信和fpga概述——杜勇版本学习笔记
  • 17.复制字符串 ,包括\0
  • C# List<T>.IndexOf()方法的使用
  • 深入理解JVM虚拟机第十八篇:JVM种局部变量表结构的认识
  • zabbix监控安装-linux
  • 7+差异分析+WGCNA+PPI网络,学会了不吃亏
  • 接口自动化测试