C#獲取QQ群所有成員的QQ號


之前有朋友需要獲取自己的qq群的所有成員的qq號,於是做了下研究,也算是有所成功,記錄下來

方案一

在網上搜到的基本上都是登錄qq群官網https://qun.qq.com,然后找到群管理,按照網友的說法,自己創建的群或者自己是群的管理的群是可以一件到處復制的,

但是我研究了一通,貌似現在並沒有這個功能了,所以放棄該方案

方案二

我們是可以通過群管理看到自己加入的群的成員的

 

但是,每次只能加載21個,如果需要復制所有的,那么需要不停地往下拉動滾動條,直到所有的都出現了,然后再開始復制,然后粘貼到文本文件里或者是excel表格中,

我嘗試粘貼在了excel表格中,並不是很理想,有些列是空的,所以導致所有的qq號並不是在同一列中,增加了粘貼復制的難度,像我這種嫌麻煩的人,果斷放棄

方案三

 

 找到qq群頁面上相應的接口,使用代碼模擬http請求,這才是一個程序員的思路。。。首先登錄qq群,切換到群管理,隨便找個群點開,然后F12,看后台j請求,不難猜測,加載成員

的方法肯定是個異步請求,我們只看XHR,果然,我們看到一個search_group_members的請求,翻譯過來就是 查詢群成員 。查看返回值,果然是我們需要的

 

剩下的就簡單了,切換到 headers,找到

請求地址:https://qun.qq.com/cgi-bin/qun_mgr/search_group_members  如果嘗試使用https 不能成功,請切換成 http,其余不變

然后最關鍵的就是cookie

最后是請求參數

gc:目標qq群號

st:開始索引值

end:結束索引值

sort:未知,默認0就可以

bkn:應該是某種特征值,經過嘗試,這個是個動態變化的,所以肯定有某種計算機制在里面

 

 直接使用postman搞它,復制cookie,還有formdata的參數,沒問題,成功獲取到

 后發現,使用get請求,然后將參數直接拼接到接口后也能成功獲取

 

 如此就開始編寫代碼了,最初直接用textbox接收cookie等參數的值,成功獲取

 

 后發現這樣太麻煩,不如添加上登錄,獲取到cookie等參數,就可以快樂玩耍了,經過一番研究,如果使用httpclient什么的模擬qq登錄,

那是相當麻煩,有的需要判定是否有驗證碼,如果有,還要加載驗證碼,並且判定驗證法是否正確,還有的需要手機驗證,有的設置了手機密保令牌,等等

然后想到了另一個思路,那就是qq提供的第三方登錄接口,在qq開發者平台一陣研究,果斷放棄,主要怕暴露信息。。。

然后突然想到,可以用webBrowser 控件啊,立馬搞它,果然成功獲取到cookie,但是網上有說這樣獲取到的cookie不能用,測試一番可以。。。

但是,前面說的 bkn這個特征值就比較難搞了,這個在webBrowser的Document中並不存在,所以猜測這個是通過客戶端計算得到的,如此繼續擼web頁面

如此 我們在本地的js中檢索這個bkn,果然被找到

 

 把所有js都拷貝出來,然后找個在線的js解壓,直接解壓,復制出來看詳細代碼實現

 

 如此,bkn也找到了,最后,擼上代碼就可以了

碼雲:https://gitee.com/dzf/GetQQGroupMember

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM