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;

}

相关文章
|
开发工具 git
|
安全 物联网 Linux
IoT技术-用HackRF做一个私网LTE基站
本文中涉及到国家通信安全。请不要随便尝试。如若尝试后造成任何后果与本文作者无任何关系。
2735 1
IoT技术-用HackRF做一个私网LTE基站
|
安全 网络安全 数据安全/隐私保护
FileZilla搭建FTP服务器图解教程
在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员。今天给大家分享FileZilla搭建FTP服务器图解教程,希望对大家有所帮助!
FileZilla搭建FTP服务器图解教程
|
JSON 数据安全/隐私保护 数据格式
QQ群好友采集工具,爬取qq群成员, qq群成员采集软件
代码实现了一个完整的QQ群成员采集工具,包含登录验证、群列表获取、成员信息采集等功能
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
1331 1
|
存储 数据可视化 安全
QQ群成员采集工具, QQ群成员昵称导出工具, qq群成员采集软件
完整的QQ群成员采集工具实现方案,包含登录认证、群成员获取、数据存储和导出等完整功能。
|
JSON 数据库 Android开发
qq群提取群成员软件, QQ群好友采集工具, qq群成员提取器安卓版
基于C++实现的QQ群成员提取工具完整代码,包含Windows桌面端和Android移动端两个版本的核心模块
|
安全 API 数据安全/隐私保护
qq群提取群成员软件, 批量提取群成员qq号, 批量导出qq群的成员列表
使用libcurl进行HTTP请求4JSON解析处理API响应数据多线程加速群