qqmailplugin(qqmailplugin是什么文件夹可以删除吗)

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

前俩期跟大家分别分享了关于wqm获取网页元素特征码的技巧和uu云远程打码平台的使用接入方法,这次小编把它们结合在一起,花了点时间用wqm写了一个简单、易懂的discuz论坛自动注册账号的小脚本分享给大家,有兴趣了解wqm写类似功能的童鞋不妨一看

填入注册信息时用到的元素特征码都是基于wqm分析组合出来的,不了解的童鞋建议先看看:【院刊】-【201507期】不要在一个元素特征字符串上吊死

[tr=rgb(154,205,50)]思路流程

从它的注册页面上大概可以看出它是这么个流程

技术小难点:

1.验证问答那边给出的数字并不是纯色的,是渐变色的,如何才能正确识别验证问答的算术表达式

2.验证码的出现受网络的影响,并不是实时出现的,有时还直接出不来,会显示红\"X\",怎么能判断验证码是否正常出现再截图上传到远程答题平台进行自动打码

[tr=rgb(154,205,50)]验证问答

游戏中的验证问答的数字是这样的,不容易直接用大漠提取文字本身做字库,但是背景色都是白色,所以小编原先是想通过大漠的ocr背景色识别来识别这些数字,但是发现效果不是很理想,主要是\"-\"号非常容易被识别错误,然后小编又想通过网页源文件配合正则来匹配出表达式,但是源文件好像没有这个表达式,最后偶然发现原来用wqm特征元素分析可以直接分析出整个的文本内容,所以利用web网页插件里的HtmlGet命令获取文本内容后直接替换就可以得到其表达式,再用eval函数即可返回其结果

相关代码如下

Function 验证问答内容= Plugin.Web.HtmlGet(\"text\",\"tag:TD&index:21\") //获取对应特征元素的文本信息TracePrint 内容内容 = replace(内容, \"换一个\", \"\")表达式 = replace(内容, \"= ?\", \"\")//得到算术表达式TracePrint 表达式结果 = eval(表达式)//eval函数返回计算结果TracePrint 结果验证问答=结果End Function

复制代码

[tr=rgb(154,205,50)]判断验证码是否出现

细心的童鞋应该不难发现,验证码没出现区域范围内都是白色,验证码出现后,范围内的背景色就会变成其他颜色,所以小编这边用的是web网页插件里的gethwnd命令先获取页面句柄,然后配合后台定点取色命令判断验证码是否出现,相关代码

Function 验证码截图页面句柄 = Plugin.Web.GetHwnd()TracePrint 页面句柄Do定点颜色 = Plugin.Bkgnd.GetPixelColor(页面句柄, 258, 585)TracePrint 定点颜色If 定点颜色 <> \"FFFFFF\" and 定点颜色<>\"C0C0C0\" ThenTracePrint \"验证码出现,开始截图\"//截图代码call UU云打码 (105615, \"56f19e68e2334cd2a8f9efe7b5cdc17f\", \"dd8878dd\", \"15987530\", 页面句柄,232,575,369,634,1004)Exit FunctionElseIf 定点颜色 = \"C0C0C0\" ThenTracePrint \"识别到验证码异常,换一个\"Call Plugin.Web.HtmlClick(\"tag:A&txt:换一个&index:1\")Delay 500Call 验证码截图End IfDelay 300LoopEnd Function

复制代码

[tr=rgb(154,205,50)]接入UU云打码

小编这边用的是UU云答题插件通过页面句柄进行后台验证码区域范围内截图并上传自动进行打码,相关代码:

Call UU云打码 (105615, \"56f19e68e2334cd2a8f9efe7b5cdc17f\", \"dd8878dd\", \"15987530\", 页面句柄,232,575,369,634,1004)// uu云远程打码实现部分Function UU云打码(软件ID, 软件Key, 用户名, 密码, 页面句柄,左上X,左上Y,宽,高,类型编号)VCodeRet = Plugin.uu.easyRecognizeWndByHWndAndPos(软件ID, 软件Key, 用户名, 密码, 页面句柄, 左上X,左上Y,宽,高,类型编号, VCodeIdx)If VCodeIdx > 0 ThenUU云打码 = Split(VCodeRet, \"_\")(1)TracePrint UU云打码Call Plugin.Web.HtmlInput(UU云打码,\"TAG:INPUT&Name:seccodeverify\")End IfEnd Function

复制代码

[tr=rgb(154,205,50)]整体代码

Call 写入注册信息Function 写入注册信息PID=Plugin.Web.Bind(\"wqm.exe\") '绑定wqm,使用wqm开头必用Call Plugin.Web.Go(\"http://www.discuz.net/member.php?mod=register\")Call Plugin.Web.HtmlClick(\"tag:SPAN&txt:同意\") '点击同意注册协议按钮Call Plugin.Web.HtmlInput (随机用户名, \"id:username_Cakjsakd\") '自动输入随机生成的用户名Call Plugin.Web.HtmlInput (\"15987530aaa\", \"id:password_Aaskoq\")Call Plugin.Web.HtmlInput (\"15987530aaa\", \"id:password2_Caasd\") '自动输入设置好的密码,密码可自定义Call Plugin.Web.HtmlInput (随机邮箱, \"id:email_Vasdd\") '自动输入随机生成的邮箱地址Call Plugin.Web.HtmlInput(验证问答, \"TAG:INPUT&Name:secanswer\") '自动输入验证问答结果Call 验证码截图Call Plugin.Web.HtmlClick(\"tag:STRONG&txt:提交\") '点击提交按钮Delay 1000Call 判断是否注册成功并记录信息End FunctionFunction 随机用户名For 10随机用户名 = Lib.算法.随机取姓名()If instr(随机用户名, \"夏\") = 0 Then //系统屏蔽\"夏\"字用户名 = 随机用户名traceprint 用户名Exit ForEnd IfNextEnd FunctionFunction 随机邮箱For 10十位数字 = Lib.算法.随机数字串(10)If left(十位数字, 1) <> 0 Then //判断第一位是否为0随机邮箱 = cstr(十位数字) & \"@qq.com\"邮箱=随机邮箱Exit ForEnd IfDelay 100NextTracePrint 邮箱End FunctionFunction 验证问答内容= Plugin.Web.HtmlGet(\"text\",\"tag:TD&index:21\") //获取对应验证问答特征元素的文本信息TracePrint 内容内容 = replace(内容, \"换一个\", \"\")表达式 = replace(内容, \"= ?\", \"\")//得到算术表达式TracePrint 表达式结果 = eval(表达式)//eval函数返回计算结果TracePrint 结果验证问答=结果End FunctionFunction 验证码截图页面句柄 = Plugin.Web.GetHwnd() '获取wqm当前页面句柄TracePrint 页面句柄Do定点颜色 = Plugin.Bkgnd.GetPixelColor(页面句柄, 258, 585) '后台定点取色TracePrint 定点颜色If 定点颜色 <> \"FFFFFF\" and 定点颜色<>\"C0C0C0\" ThenTracePrint \"验证码出现,开始截图\"//截图代码Call UU云打码 (105615, \"56f19e68e2334cd2a8f9efe7b5cdc17f\", \"dd8878dd\", \"15987530\", 页面句柄,232,575,369,634,1004)Exit FunctionElseIf 定点颜色 = \"C0C0C0\" ThenTracePrint \"识别到验证码异常,换一个\"Call Plugin.Web.HtmlClick(\"tag:A&txt:换一个&index:1\")Delay 500Call 验证码截图End IfDelay 300LoopEnd Function// uu云远程打码实现部分Function UU云打码(软件ID, 软件Key, 用户名, 密码, 页面句柄,左上X,左上Y,宽,高,类型编号)VCodeRet = Plugin.uu.easyRecognizeWndByHWndAndPos(软件ID, 软件Key, 用户名, 密码, 页面句柄, 左上X,左上Y,宽,高,类型编号, VCodeIdx)If VCodeIdx > 0 ThenUU云打码 = Split(VCodeRet, \"_\")(1)TracePrint UU云打码Call Plugin.Web.HtmlInput(UU云打码,\"TAG:INPUT&Name:seccodeverify\")End IfEnd FunctionFunction 判断是否注册成功并记录信息 '记录注册成功的账号信息到日志t = nowTracePrint \"进入判断是否注册成功\"Do元素个数 = Plugin.Web.HtmlExists(\"tag:A&txt:退出\") '判断页面是否有退出按钮,有则说明注册成功If 元素个数 > 0 Then账号数量 = Plugin.File.ReadINI(\"注册成功的账号数量\", \"账号数量\", \"C:账号记录.ini\")TracePrint 账号数量If 账号数量 = \"\" Then账号数量 = 1Else账号数量 = clng(账号数量) + 1TracePrint 账号数量End IfCall 输出日志( 账号数量,用户名,邮箱)Call Plugin.Web.Tips(\"注册成功,账号已记录,开始自动注册下一个\")Call Plugin.Web.HtmlClick(\"tag:A&txt:退出\")Call 写入注册信息ElseIf datediff(\"s\", t, now) > 15 Then '15秒内页面没跳转则算注册超时失败,重新注册下一个,秒数可自定义Call Plugin.Web.Tips(\"该次注册超时,自动开始下一次注册\")Call 写入注册信息End IfDelay 200LoopEnd FunctionSub 输出日志( 账号数量,用户名,邮箱)FileName = \"C:账号记录.ini\"Call Plugin.File.WriteINI(\"注册成功的账号数量\", \"账号数量\", 账号数量, FileName)Call Plugin.File.WriteINI(\"注册成功的账号\", \"用户名\" & 账号数量, 用户名, FileName)Call Plugin.File.WriteINI(\"注册成功的账号\", \"注册邮箱\"&账号数量, 邮箱, FileName)End Sub

复制代码

[tr=rgb(154,205,50)]后记

今天关于使用wqm实现一个简单的自动论坛注册账号的功能就讲到这了,希望大家看后会觉得有用,其实现在的网站注册通常都需要输入手机号来验证了,这确实是一个比较头疼的问题