微信小程序自动化采集方案
本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,拒绝转载,若有侵权请联系我删除!
一、引言
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目录
相关文章:
微信小程序自动化采集方案
本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,拒绝转载,若有侵权请联系我删除! 一、引言 1、对于一些破解难度大,花费时间长的目标,我们可以先采用自动化点击触发请求&…...
操作系统第三章王道习题_内存管理_总结易错知识点
1. 静态重定位和动态重定位 静态重定位(可重定位装入):作业在装入内存的时候,就修改它的物理地址. 静态重定位进程数据一旦确定位置,就不能再移动 动态重定位(动态运行时装入):作业装入内存的时候,不修改物理地址,直到运行的时候,根据重定位寄存器再修改地址. 对…...
uniapp刻度尺的实现(swiper)滑动打分器
实现图(百分制):滑动swiper进行打分,分数加减 <view class"scoring"><view class"toggle"><view class"score"><text>{{0}}</text><view class"scoreId&quo…...
cordova Xcode打包ios以及发布流程(ionic3适用)
第一步 1、申请iOS证书 2、导入证书到钥匙串 第二步 1、xcode配置iOS证书 1.1用Xcode打开你的项目(我的Xcode版本是新版) 修改如下图 回到基本信息设置界面,Bundie 这项填写,最先创建的那个appid,跟创建iOS描述文件时选…...
idea中的.idea文件夹以及*.iml文件(新版idea没有*.iml文件了),新旧版idea打开同一个项目会不会出现不兼容
一、背景 我们有可能会在同一台电脑上安装2个 intellj idea。比如一个community edition一个ultimate edition(一个安装板一个绿色解压版) 当然了,两个idea之间可能版本号也会有差。 这篇文章就来讨论两个问题,一是关于idea产生…...
高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路
文章目录 C10KC10K的由来C10K问题在技术层面的典型体现C10K问题的本质C10K解决思路思路一:每个进程/线程处理一个连接思路二:每个进程/线程同时处理多个连接(IO多路复用)● 实现方式1:直接循环处理多个连接● 实现方式…...
uniapp u-tabs表单如何默认选中
首先先了解该组件;该组件,是一个tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动。 该组件的一个特点是配置为滚动模式时,激活的tab会自动移动到组件的中间位置。 …...
2023年腾讯云双11活动入口在哪里?
2023年双11腾讯云推出了11.11大促优惠活动,下面给大家分享腾讯云双11活动入口、活动时间、活动详情,希望可以助力大家轻松上云! 一、腾讯云双11活动入口 活动地址:点此直达 二、腾讯云双11活动时间 腾讯云双11活动时间跨度很长…...
Windows 下编译 TensorFlow 2.12.0 CC库
大体参考 Windows 下编译 TensorFlow 2.9.1 CC库-CSDN博客 这个版本不完整,需要从 TensorFlow 2.14.0 根目录复制 WORKSPACE 覆盖原同名文件,还需要复制TensorFlow 2.14.0 的 tensorflow\tools\toolchains\python 到相同目录。...
Spring Boot 中自动装配机制的原理
(摘自mic老师面试题) 最近一个粉丝说,他面试了 4 个公司,有三个公司问他:“Spring Boot 中自动装配 机制的原理” 他回答了,感觉没回答错误,但是怎么就没给 offer 呢? 对于这个问题…...
如何安装Wnmp并结合内网穿透实现外网访问内网Wnmp服务
文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 WNMP是Windows系统下的绿色NginxMysqlPHP环境集成套件包,安装完成后即可得到一个Nginx MyS…...
网工内推 | 上市公司,云平台运维,IP认证优先,13薪
01 上海新炬网络信息技术股份有限公司 招聘岗位:云平台运维工程师 职责描述: 1、负责云平台运维,包括例行巡检、版本发布、问题及故障处理、平台重保等,保障平台全年稳定运行; 2、参与制定运维标准规范与流程&#x…...
Linux安装DMETL4
Linux安装DMETL4 产品与环境介绍1 规划安装路径2 DM8安装路径2.1 达梦数据库程序安装路径2.2 初始化达梦数据库2.3 创建数据库用户名 DMETL 3 安装DMETL3.1 查看安装包与授权3.2 安装DMETL程序3.3 DMETL安装日志 4 启动DMETL5 DMETL连接数据库后会自动创建相关资源表6 达梦数据…...
Python中编码声明的方法
编码声明主要是为了解决编码问题。由于Python 3的默认编码是UTF-8,因此在使用Python 3编写源代码时,通常不需要在文件开头添加编码声明。但是,如果您使用的编码不是UTF-8,则需要在文件开头添加编码声明,以确保Python解…...
css设置浏览器表单自动填充时的背景
浏览器自动填充表单内容,会自动设置背景色。对于一般的用户,也许不会觉得有什么,但对于要求比较严格的用户,就会“指手画脚”。这里,我们通过css属性来设置浏览器填充背景的过渡时间,使用户看不到过渡后的背…...
windows系统下查看安卓apk的sha1
1.在apk所在文件夹打开cmd或者powershell 2.输入 certutil -hashfile xxx.apk SHA1 这样就可以了 3.指令格式 certutil -hashfile FileName [HashAlgorithm] certutil -hashfile:原样输入 FileName:文件名 HashAlgorithm:可选项包括&…...
openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述
文章目录 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述116.1 背景信息116.2 操作步骤 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述 116.1 背景信息 数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作…...
python编程复习系列——week2(Input Output (2))
文章目录 一、多行代码语句二、Escape序列三、字符串格式四、数值运算课后作业 一、多行代码语句 🥞使用反斜杠\来表示在下一行中继续使用一条语句。 subject_code "CSCI111" subject_mark 80 subject_grade "D" result "Subject re…...
为什么HTTP用得很好的,开始普及HTTPS呢?
显而易见,现在的HTTP早已不安全,当我们在浏览各个网站时会发现HTTP前面都会显示不安全,因为HTTP是明文传输,一旦电脑被植入了木马,木马程序就会主动周期性发消息给Internet的控制终端,这样NAT小洞会一直敞开…...
C++day6作业
1.思维导图 2.编程题: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在&am…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
