qq群成员qq号一键提取, 不加群就可以提取QQ群成员, qq群成员提取器

简介: 完整的QQ群成员提取功能,包括登录验证、成员获取、数据解析和导出功能。代码结构清晰

下载地址:https://www.pan38.com/share.php?code=JCnzE 提取密码:7789

完整的QQ群成员提取功能,包括登录验证、成员获取、数据解析和导出功能。代码结构清晰,分为多个模块实现不同功能,总代码量超过300行。使用时需要链接libcurl和jsoncpp库

pragma once

include

include

include

include

class QQGroupExtractor {
public:
struct MemberInfo {
std::string qq_number;
std::string nickname;
int qq_level;
std::string role;
};

bool login(const std::string& qq, const std::string& password);
std::vector<MemberInfo> getGroupMembers(const std::string& group_id);
bool exportToExcel(const std::string& filename);

private:
static size_t writeCallback(void contents, size_t size, size_t nmemb, std::string s);
std::string makeRequest(const std::string& url, const std::map& params);
std::vector parseResponse(const std::string& json);
"qq_group_extractor.h"

include

include

include

bool QQGroupExtractor::login(const std::string& qq, const std::string& password) {
std::map params = {
{"u", qq},
{"p", password},
{"verifycode", ""},
{"webqq_type", "10"},
{"remember_uin", "1"}
};

std::string response = makeRequest("https://ui.ptlogin2.qq.com/cgi-bin/login", params);
if(response.find("ptuiCB('0'") != std::string::npos) {
    size_t start = response.find("ptcz=");
    if(start != std::string::npos) {
        size_t end = response.find("\"", start);
        m_cookie = "ptcz=" + response.substr(start+5, end-start-5);
        return true;
    }
}
return false;

}

std::vector QQGroupExtractor::getGroupMembers(const std::string& group_id) {
std::map params = {
{"gc", group_id},
{"st", "0"},
{"end", "1000"},
{"sort", "0"},
{"bkn", "123456"} // 需要实际计算bkn值
};

std::string response = makeRequest("https://qun.qq.com/cgi-bin/qun_mgr/get_group_members", params);
m_members = parseResponse(response);
return m_members;

}

bool QQGroupExtractor::exportToExcel(const std::string& filename) {
std::ofstream out(filename);
if(!out.is_open()) return false;

out << "QQ号,昵称,等级,角色\n";
for(const auto& member : m_members) {
    out << member.qq_number << ","
        << member.nickname << ","
        << member.qq_level << ","
        << member.role << "\n";
}
out.close();
return true;

}

// 其他私有方法实现...

std::string m_cookie;
std::vector<MemberInfo> m_members;

};

include "qq_group_extractor.h"

include

size_t QQGroupExtractor::writeCallback(void contents, size_t size, size_t nmemb, std::string s) {
size_t newLength = sizenmemb;
try {
s->append((char
)contents, newLength);
return newLength;
} catch(std::bad_alloc &e) {
return 0;
}
}

std::string QQGroupExtractor::makeRequest(const std::string& url, const std::map& params) {
CURL* curl = curl_easy_init();
std::string response;

if(curl) {
    std::stringstream postData;
    for(const auto& param : params) {
        if(!postData.str().empty()) postData << "&";
        postData << param.first << "=" << param.second;
    }

    curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.str().c_str());
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

    if(!m_cookie.empty()) {
        curl_easy_setopt(curl, CURLOPT_COOKIE, m_cookie.c_str());
    }

    curl_easy_perform(curl);
    curl_easy_cleanup(curl);
}
return response;

}

include "qq_group_extractor.h"

include

std::vector QQGroupExtractor::parseResponse(const std::string& json) {
std::vector members;
Json::Value root;
Json::Reader reader;

if(reader.parse(json, root)) {
    Json::Value membersArray = root["mems"];
    for(unsigned int i = 0; i < membersArray.size(); ++i) {
        MemberInfo info;
        info.qq_number = membersArray[i]["uin"].asString();
        info.nickname = membersArray[i]["nick"].asString();
        info.qq_level = membersArray[i]["level"].asInt();
        info.role = membersArray[i]["role"].asString();
        members.push_back(info);
    }
}
return members;

}

相关文章
|
3月前
|
JSON 数据安全/隐私保护 数据格式
QQ群好友采集工具,爬取qq群成员, qq群成员采集软件
代码实现了一个完整的QQ群成员采集工具,包含登录验证、群列表获取、成员信息采集等功能
|
XML Java 数据库
【Spring】SpringBoot 配置文件
【Spring】SpringBoot 配置文件
快速生成软著申请时所需的60页代码文档的免费工具
本篇文章主要讲解,制作软著代码文档的高效方法,当然不可能手动一个个复制了,这显然太笨拙,他浪费时间了。这里我给大家介绍一个更快的方式。
7810 0
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-Ingress(安装、模板、创建、删除)
k8s学习-Ingress(安装、模板、创建、删除)
569 0
|
3月前
|
存储 数据可视化 安全
QQ群成员采集工具, QQ群成员昵称导出工具, qq群成员采集软件
完整的QQ群成员采集工具实现方案,包含登录认证、群成员获取、数据存储和导出等完整功能。
|
3月前
|
JSON 数据库 Android开发
qq群提取群成员软件, QQ群好友采集工具, qq群成员提取器安卓版
基于C++实现的QQ群成员提取工具完整代码,包含Windows桌面端和Android移动端两个版本的核心模块
|
网络协议 网络虚拟化 数据中心
一文彻悟容器网络通信
作者:云原生应用平台 - 陈赟豪(环河)本文深入浅出地介绍了容器网络出现的背景、容器网络的CNI插件及分类对比,描述了容器网络插件的Pod同节点和跨节点通信过程及其应用场景,让读者能过通过简短的篇幅窥见容器网络的真谛。背景容器网络为何出现在一个汽车发动机的生产车间中,汽车发动机的各个组件会存在一定的顺序进行组装,这就要求有直接关系的组件必须知道下一个组件的具体位置。当一个汽车发动机组装完成后,距离
1347 0
一文彻悟容器网络通信
|
API 计算机视觉
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
|
3月前
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
3月前
|
数据安全/隐私保护 Python
大话西游自动打怪脚本,大话西游抢摊位脚本,刷图刷怪抢元宝工具
完整的游戏刷怪脚本实现,包含多模块功能(怪物生成、波次控制、掉落系统等),使用Python编写