QQ群群员数据导出

导出QQ群群员名称,QQ号等相关数据

目前为 2019-03-06 提交的版本。查看 最新版本

// ==UserScript==
// @name         QQ群群员数据导出
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  导出QQ群群员名称,QQ号等相关数据
// @author       You
// @match        https://qun.qq.com/member.html
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    function addExportButton() {
        if (document.getElementById("exportFile") == null) {
            var a = document.createElement('button');
            document.getElementById("groupMemberTit").appendChild(a);
            a.innerHTML = '导出成员';
            a.id = "exportFile";
            a.style = "background-color: red;";
            document.querySelector('#exportFile').addEventListener('click', startExporting);
        } else {
            clearInterval(interval);
        }
    }

    function startExporting() {
        groupSize = document.getElementById("groupMemberNum").innerHTML;
        scrollInterval = setInterval(scroll, 500);
    }

    function scroll() {
        var membersInfo = document.getElementById("groupMember").getElementsByTagName("tr");
        var noOfLastMember = membersInfo[membersInfo.length - 1].getElementsByTagName("td")[1].innerHTML;
        scrollBy(0, 500);
        if (groupSize == noOfLastMember) {
            clearInterval(scrollInterval);
            saveFile();
        }
    }

    function saveFile(){
        var inValue = "成员,群名片,QQ号,性别,Q龄,入群时间,等级(积分),最后发言\n";
        var allMembersInfo = document.getElementById("groupMember").getElementsByTagName("tr");
        for (var i=1; i<allMembersInfo.length; i++) {
            var tempMember = allMembersInfo[i].getElementsByTagName("td");
            for (var j=2; j<=9; j++) {
                inValue += tempMember[j].innerText + ",";
                //console.log(inValue);
            }
            inValue += "\n";
        }

        let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(inValue);
        var link = document.createElement("a");
        link.href = uri;
        link.download = "成员表.csv";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
  }

    var interval, scrollInterval, groupSize;
    interval = setInterval(addExportButton, 1000);
})();