微信手机端调试抓包总结与问卷星手机端的自动化

本文分为两个部分, 一个是如何对微信内网页调试抓包的总结另一个是wjx的问卷填写.

总结部分

诸如"ks.wjx.top"的为考试卷, 估计也一般设置为要求微信登录.
一共做过两次, 有强制微信手机登录, 也有可以用电脑微信做的.
我自己发的测试问卷
首先是去遮罩, 看到题, 调试可以用浏览器改useragent来模拟微信浏览器, 也可以直接下微信开发者工具调试.
在这里插入图片描述
控制台直接show_zhezhao_utlis(0,1)即可, 当然还是处于需要登录的状态

实现

试卷只是第二课堂加分用, 前几名加的比较多. 目的就是为了秒掉试卷(只有三套试卷 比的就是手速).
搜了一下也只有电脑端的随机作答, 故写下此文.
要说下我对这方面的知识只在了解层面, 弄也只是为了兴趣, 写下提供个思路, 言语描述若有不当请见谅…
清楚了目标想到两种方法:
1 用python模拟操作
2 网页控制台写js

第一种方法

最重要的地方就是获取微信登录后的cookie, 不过光是手机抓包这一步就卡住我了, 安卓7.0以上对抓包进行了额外限制, 最后用虚拟机+微信7以下版本解决
能够抓包之后, 发现不简单, 加上自己不懂就不在此献丑了, 有兴趣的可以采用这种方法. 到这,我果断放弃之.

总结如下:

关于微信内网页抓包版本问题
fiddler+模拟器调试
对微信网页抓包需要用安卓7以下版本, 推荐mumu
当然也可以在手机上安装虚拟环境然后安装微信具体见使用Fiddler抓包微信7.0–HTTPS协议

第二种方法

就很简单了, 这种方法也是tx官方的方法, 前提要有wx版本号在7之前的版本, 因为7之后了微信浏览器换了内核. 所以不远的将来应该还是得用获取cookie的方式.
在有了这个神器后, 后面的事就比较清晰了.
使用上文介绍的使用虚拟环境(vxposed或模拟器安装微信低版本)
然后利用官方还没有关闭的调试方法debugx5
代码如下 与测试问卷无关,相关问卷已被关闭作答,供参考. ps: 借鉴了油猴上wjx的随机填问卷, 虽然电脑端和手机端是两套代码, 不过照葫芦画瓢就好了
5个基础信息填空15个选择然后10个填空共三套试卷.

(function() {
	var ans1Select=new Array('3','4','4','2','1','2','4','1','1','4','4','1','1','3','2');
    var ans1Blank=new Array('I','D','H','C','O','B','J','G','L','E');
	//loseweight
	var ans2Select=new Array('1','4','1','2','1','2','4','1','3','3','4','3','2','4','1');
    var ans2Blank=new Array('I','N','M','C','O','J','E','L','A','G');
	//whatabout
	var ans3Select=new Array('1','2','1','4','1','4','2','1','1','2','3','2','1','4','1');
    var ans3Blank=new Array('G','L','F','O','C','E','M','N','J','B');
	
	var ansSelectTotal=new Array(ans1Select,ans2Select,ans3Select);
	var ansBlankTotal=new Array(ans1Blank,ans2Blank,ans3Blank);
	var basicInfo=new Array("理工","2017","软件","88888888","测试");//基础信息
	
    function GetAnswer() {
		this.martixSingleChoose = function(subject,num,paper) {
			var tr = subject.querySelectorAll("a");
			console.log(num);
			console.log(paper);		
			var ans=ansSelectTotal[paper-1][num-1];		
			tr[ans - 1].classList.add('jqChecked');
			tr[ans - 1].click();
		}
		
		this.fillInTheBlank = function(subject,num,paper)	{
			var textInputs = subject.querySelectorAll("input");
			var ans=ansBlankTotal[paper - 1][num-1];
			$(textInputs).attr("value",ans);
		}
    }
	
    function judgeType() 
	{
        var q = document.getElementsByClassName("ui-field-contain");
		
		var paper=0;//第几张试卷
		var paperType=q[1].querySelectorAll(".field-label")[0].textContent;
		var ans3="1. what about*";
		var ans2="1. lose weight*";
		var ans1="1. glimpse*";
		console.log(q[1].querySelectorAll(".field-label"));
		console.log(paperType);
		if(paperType==ans3)
			paper=3;
		if(paperType==ans2)
			paper=2;
		if(paperType==ans1)
			paper=1;
		
		console.log(paper);
        var rc = new GetAnswer();
		//基本信息
		var listBasicInfo = q[0].querySelectorAll("input");
		for(var i=0;i<listBasicInfo.length;i++)
		{
			var info=basicInfo[i];
			$(listBasicInfo[i]).attr("value",info);
		}
		show_next_page();
        for (var i = 1; i < q.length; i++) 
		{
            if (q[i].querySelectorAll(".ui-radio")[0]) 
			{
                if (q[i].querySelectorAll("input")[0])
				{ // 表格题中包含有单选, 多选
                    input = q[i].querySelectorAll("input");
                    if (input[0].type == 'radio') 
					{
                        rc.martixSingleChoose(q[i],i,paper);
                    }
                }
            } 
			else if (q[i].querySelectorAll(".ui-input-text")[0]) 
			{
				   console.log("填空", i);
				   console.log(paper);
				   rc.fillInTheBlank(q[i],i - 15,paper);	//填空题从16开始
					
			}
		}
    }
    judgeType();
	setTimeout(function()
	{
		var vote = document.getElementsByClassName("voteDiv");
		var vote_a=vote[0].querySelectorAll("#ctlNext");
		vote_a[0].click();
	},1000);
})();
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四位

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值