本身这个不是一个复杂的问题,程序也很简单,但是中间碰到了好几个坑,主要把进坑经历贴出来,避免后人重新入坑。
新冠肆虐后,学校要求家长每天在某微信小程序中报告学生的健康状况(是否有异常,是否接触高风险地区人),要求的报告时间是每天7点前(也就是每天的0:00-7:00上报小孩的健康情况)。但是很多时候,家长并没有起床那么早,因此就想编一个程序自动到0:00~7:00上报。
由于没有能力直接操控微信小程序,因此可能采取两种方法:
A:Windows上安装某某助手,该助手可以完全模拟手机屏幕上的操作(不管是触摸还是打字)。然后用Python编写一个程序控制该助手,定时模拟报告健康信息。
B:检测小程序和网络的数据交换,查看里面的通信数据信息,模拟数据包进行发送。
由于第二个方法比较简单,因此采用了第2个方法。
下载并设置fiddler捕获数据(坑1:全部设置好,无法捕获数据)
安装大名鼎鼎的Fiddler并做好设置后(主要设置如下)
WINDOWS端设置
- 打开Fiddler的选项菜单中的对话框
HTTPS页面:Decrypt HTTPS Traffic,并安装信任证书,证书的名字叫:DO_NOT_TRUST_FiddlerRoot
Connections页面:Allow Remote Computers to connect(主要是为了允许手机端连接)
- 获取Windows的局域网本机地址(不是公网地址):
WIN+R键盘,打开CMD,打开IPCONFIG,记录IP
手机端:(苹果手机,安卓未测试,应该差不多)
-
手机与电脑在同一个网段内,设置代理为前面电脑端的网址,端口为8888,
-
打开手机浏览器,输入前面电脑端IP地址+端口号:比如192.168.8.51:8888,会提示你需要下载一个描述文件,点击下载。
-
然后到手机的{设置|通用|描述文件}中找到刚才下载的描述文件,打开并安装它。
-
到这里你就可以试着上网了。但是随便你打开一个网址,会提示“啥啥啥不安全,可能被劫持数据”之类的,然后让你继续或者退回。在浏览器里你当然可以选择继续,但是在微信小程序中不会让你选择“继续”,直接没有数据连接,这时候你需要选择:{设置|关于本机|证书信任设置},找到安装的证书,选择信任。
正常上述设置后,就可以捕获数据了,但是遗憾的是:我不但捕获不到移动端的信息,连电脑打开浏览器随便输入一个网页也没有任何信息被捕获,真是百撕不得其姐啊。
经过一遍遍的测试,搜索百度,最后找到了脱坑方法:
原来Chrome的部分插件(我这边主要是GOOGLE搜索插件,顺便吐槽一下百度,用GOOGLE插件来搜索GOOGLE被百度好一万倍)可能修改了Proxy或其它什么,禁用插件后,Fiddler顺利捕获数据
|
请发表评论