易语言开发QQ群成员提取器!一键批量提取,赶紧来学习
我们做互联网营销难免需要接触到QQ营销,因为QQ的流量非常大,有些营销需要我们到处某个QQ群所有的好友数据,如果用传统手动的方式导出的话比较麻烦,所以我们今天用易语言给大家实现批量导出QQ群好友列表,如果对你有用的话,请用心读下去,不废话直接进入到主题。我们利用POST抓包形式来读取QQ群好友列表。
需要的工具:
1、易语言
2、精易模块
3、精易VIP超级模块
4、精易编程助手(需要网络抓包)
操作方法:
一、我们首先打开精易助手的抓包功能,需要抓取的地址为:qun.qq.com,在工具里面扫码登陆,完了点击页面的群管理,完了会弹出一个群列表页,大家可以看下面例图。
二、弹出群列表页后,我们点击工具的开始抓包按钮,然后我们在群列表页随便点击某个群,完了就会获取到这个群页面的好友数据列表。
三、主要能正确的提交POST数据,我们就能获取到某个群的所有好友数据,这时候我们需要分析POST提交数据:
提交地址为:https://qun.qq.com/cgi-bin/qun_mgr/search_group_members
提交方式:POST
提交数据:gc=9633670&st=0&end=20&sort=0&bkn=187606947
重点是提交数据的一些参数值,“GC”值表示群号,“ST”值不用管,“end”值不用管,默认即可,好像是一次需要获取的好友数,“sort”值也不用管,“BKN”值这个参数才是最重要的,如果这个参数值提交错误的话是没办法POST到好友数据的,那么这个“BKN”参数值如何获取呢,我们分析发现,在页面没办法直接获取,需要先获取登陆成功后的COOKIE数据,然后从COOKIE获得skey参数值,完了再通过特定算法计算SKEY值然后计算出的另一个值就是提交数据里面的bkn值了。
易语言BAKN值计算函数代码:
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
QQ_gtk | 文本型 | ||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
skey | 文本型 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
基值 | 整数型 | |||||
计数 | 整数型 | |||||
长度 | 整数型 | |||||
结果 | 整数型 |
计数 = 0
长度 = 取文本长度 (skey)
判断循环首 (计数 < 长度)
基值 = 基值 + 左移 (基值, 5) + 取代码 (skey, 计数 + 1)
计数 = 计数 + 1
判断循环尾 ()
结果 = 位与 (基值, 2147483647)
返回 (到文本 (结果))
三、计算出了BKK值,这个程序的大问题就搞定了,我们直接在易语言里面新建一个程序,然后放三个编辑框,一个超文本浏览器,一个按钮,然后把下面的案例代码直接复制粘贴到你的代码框。
案例代码:
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||
_按钮1_被单击 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
cookie | 文本型 | |||||
bkn | 文本型 | |||||
提交数据 | 文本型 | |||||
QQ群号 | 文本型 | |||||
skey | 文本型 | |||||
第一次 | 文本型 | |||||
返回数据 | 文本型 |
调试输出 (cookie)
第一次 = 取文本右边 (cookie, 80)
调试输出 (第一次)
判断 (寻找文本 (第一次, “pgv_info”, , 假) > 1)
skey = 文本_取出中间文本 (cookie, #前面, #后面 )
调试输出 (skey)
skey = 取文本右边 (第一次, 10)
调试输出 (skey)
bkn = QQ_gtk (skey)
调试输出 (bkn)
返回数据 = 到文本 (网页_访问 (“https://qun.qq.com/cgi-bin/qun_mgr/search_group_members”, 1, “gc=” + 编辑框3.内容 + “&st=0&end=” + 编辑框1.内容 + “&sort=0&bkn=” + bkn + “”, cookie))
调试输出 (返回数据)
编辑框2.内容 = 返回数据
打开指定网址 (“http://www.xkrj5.com”)
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
QQ_gtk | 文本型 | ||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
skey | 文本型 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
基值 | 整数型 | |||||
计数 | 整数型 | |||||
长度 | 整数型 | |||||
结果 | 整数型 |
计数 = 0
长度 = 取文本长度 (skey)
判断循环首 (计数 < 长度)
基值 = 基值 + 左移 (基值, 5) + 取代码 (skey, 计数 + 1)
计数 = 计数 + 1
判断循环尾 ()
结果 = 位与 (基值, 2147483647)
返回 (到文本 (结果))
子程序名 | 返回值类型 | 公开 | 备 注 | ||
__启动窗口_创建完毕 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
填表 | 网页填表 |
填表.初始化 (超文本浏览框1.取窗口句柄 ())
填表.链接_点击 (“登录”)
i支持库列表 | 支持库注释 |
spec | 特殊功能支持库 |
eAPI | 应用接口支持库 |
四、添加完案例代码,还需要添加几个常量。
需要添加的常量:
常量名称 | 常量值 | 公 开 | 备 注 | ||
前面 | <文本长度: 5> | 常量值为:skey= | |||
后面 | <文本长度: 1> | 常量值为:; |
五、完了我们运行你的程序,然后扫码登陆即可直接获取到某个QQ群好友的数据列表哦!是不是很简答呢?最难的就是获取BKN参数值了,这个大家下去了好好研究一下。
关于“BKN”参数值的问题补充:
其实这个BKN值是用户客户端提交给服务器的,那么这个BKN值肯定是在客户端浏览器完成生成的,这时候我们第一时间需要想到的就是JS代码,果不其然,小编在QQ群页面的某个JS文件里面找到了BKN参数值的计算函数。
“BKN”参数值JS计算函数:
bkn=function(){for(var e=$.cookie("skey"),t=5381,n=0,o=e.length;n<o;++n)t+=(t<<5)+e.charAt(n).charCodeAt();return 2147483647&t}
那么大家需要下载这款工具源码的话,我们这边已上传到CSDN资源站了,自己下载哈!
https://download.csdn.net/download/qq_15159657/12234954
如果不能访问的话,应该在审核!!!