日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js实现爬取QQ群管理页面所有QQ群成员信息

發布時間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js实现爬取QQ群管理页面所有QQ群成员信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

js實現爬取QQ群管理頁面所有QQ群成員信息

    • QQ群管理頁面請求
    • 代碼
    • 導出的效果

QQ群管理頁面請求

如圖所示,當進入該頁面的時候,頁面會發送四個請求,bkn參數是每次進入該頁面時,自動生成的一個身份id,只要不關閉頁面,就不會變,如果重新進入頁面,該參數也會變.
1.第一個請求沒用,不解釋
2.get_group_list請求是拉取群組信息

3.get_friend_list請求是拉取好友信息,這里用不到
4.search_group_members請求是通過群號拉取成員信息
經測試發現,每次只能拉取少量成員,大概是不超過40個數據,如果超過,返回的就是錯誤代碼,所以后續使用遞歸函數,反復拉取

代碼

使用只需要每次將myId更換為進入頁面的bkn數值,上面有說.(關閉頁面重新進入后該參數會變,所以記得替換參數)
然后將代碼直接復制到控制臺回車,然后耐心等待即可

// An highlighted block let start = 0;let end = 0let myId = '983285666' //特定id,每次進入頁面會生成這個id,復制粘貼到這里就行let ResultList = new Array(); //用于存儲最后要導出的數據let groupArr = new Array(); //存儲所有群$.ajax({method: "post",async: false,url: "https://qun.qq.com/cgi-bin/qun_mgr/get_group_list",data: {"bkn": myId},success: function (res) {groupArr = res.create.concat(res.join) //res.create是自己創建的群.res.join是加入的群,合并到groupArr數組foo()},})function foo() {if (groupArr.length > 0) {$.ajax({method: "post",url: "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members",async: false,data: {"bkn": myId,"gc": groupArr[0].gc, //群號"st": start,"end": end + 40, //每次請求40條是因為請求條數過大,返回的就是錯誤代碼"sort": "0",},success: function (res) {end += 40;start = end + 1//存儲結果到緩存console.log(groupArr);for (var i in res.mems) {ResultList.push([groupArr[0].gn, //群名稱groupArr[0].gc, //群號res.mems[i].card, //人員群昵稱res.mems[i].uin, //人員QQ號res.mems[i].nick //人員元昵稱])};if (end >= res.count) {//res.count是群現有人數// var title = "群名稱,群號,人員群內昵稱,人員QQ號,人員昵稱";// var downList = '\n' + ResultList.join('\n')// var data = "\ufeff" + title + downList;// const blob = new Blob([data], {// type: 'text/csv,charset=UTF-8'// });// const csvUrl = URL.createObjectURL(blob);// let link = document.createElement('a');// link.download = groupArr[0].gn +`.csv`; //文件名字// link.href = csvUrl;// link.click();// ResultList = [];//上面注釋部分是每個群分別生成一個csv文件導出,如果想要單獨導出,放開上面,隱藏下面else即可start = 0;end = 0;groupArr.shift()}setTimeout(() => { //設置時間是因為請求過快,你會被限制進入該頁面foo();}, 2 * 1000 + Math.random() * 500);},})} else {//生成csv并下載,這里是吧所有群人員導入到一個csv文件,如果需要分別導出,隱藏這里,放開上面注釋即可var title = "群名稱,群號,人員群內昵稱,人員QQ號,人員昵稱";var downList = '\n' + ResultList.join('\n')var data = "\ufeff" + title + downList;const blob = new Blob([data], {type: 'text/csv,charset=UTF-8'});const csvUrl = URL.createObjectURL(blob);let link = document.createElement('a');link.download = `所有群人員信息.csv`; //文件名字link.href = csvUrl;link.click();ResultList = [];}}

導出的效果

總結

以上是生活随笔為你收集整理的js实现爬取QQ群管理页面所有QQ群成员信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。