python提取qq群成员代码_Python提取QQ群成员QQ号及昵称
今天遇到一個問題,需要導(dǎo)出QQ群成員,但貌似只有群主有導(dǎo)出QQ群成員的權(quán)限。本想網(wǎng)上找找有沒有這樣的軟件,但折騰一個軟件太煩,總有刁民想謀害朕,誰知道軟件有沒有病毒呢?因此就想著用Python寫段小代碼來獲取QQ群成員QQ號及昵稱。
折騰了十幾分鐘,搞定了,成功獲取了QQ群成員昵稱和QQ號。代碼示例如下:
import requests
import browsercookie
import random,time
class QQ(object):
def __init__(self,gc,bkn,num):
self.headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
self.gc = gc
self.bkn = bkn
self.num = num//40 + 1
self.url = 'https://qun.qq.com/cgi-bin/qun_mgr/search_group_members'
def get_cookies(self):
cookies = browsercookie.chrome()
cookies = [cookie for cookie in cookies if 'qq.com' in str(cookie)]
cookies = requests.utils.dict_from_cookiejar(cookies)
return cookies
def qqs(self):
cookies = self.get_cookies()
qqs = []
for i in range(self.num):
num1 = i * 40
num2 = (i + 1) * 40
data = {'gc': self.gc,
'st': '{}'.format(num1),
'end': '{}'.format(num2),
'sort': '0',
'bkn': self.bkn
}
res = requests.post(self.url, data=data, headers=self.headers, cookies = cookies).json()
time.sleep(random.uniform(2, 3.5))
members = res['mems']
for line in members:
qq = line.get('uin', 87654321)
nick = line.get('nick','未知')
qq_data = '{}\t{}'.format(nick,qq)
print(qq_data)
qqs.append(qq_data)
return qqs
def save_qqs(self):
qqs = self.qqs()
with open('qqs.txt','w',encoding='utf-8-sig') as f:
f.writelines([qq+'\n' for qq in qqs])
if __name__ == '__main__':
#修改三個參數(shù),即QQ群號,bkn值,群成員個數(shù)
qq = QQ('7654321','123456789',888)
qq.save_qqs()
代碼使用方法
首先需要安裝requests庫和browsercookie庫,一個用來發(fā)送請求,一個用來自動處理登陸后的cookie。實例化的時候需要傳入三個參數(shù),即gc,bkn,num。gc代表QQ群號,bkn不知道啥意思,通過瀏覽器抓包獲得,num代表QQ群成員個數(shù)。
bkn通過抓包獲得,方法是首先訪問https://qun.qq.com/,登陸之后點擊群管理,點擊成員管理,再點擊切換QQ群,選擇將要提取群成員的QQ群。然后右鍵檢查元素,切換到Network標簽,下滑鼠標,找到searchgroupmembers,點進去,點擊Headers選項卡,找到From Data,即可獲取bkn的值。
將QQ群號,bkn值及群成員個數(shù)傳入,運行代碼即可,數(shù)據(jù)最終保存在qqs.txt文件中。
browsercookie官方文檔自動獲取cookie的示例在這里并不適用,需要做一層篩選,只選擇qq.com域名下的cookie并用requests.utils.dictfromcookiejar轉(zhuǎn)化,然后傳入才可獲得正確的數(shù)據(jù)。如果不做篩選直接傳入,則獲取不到數(shù)據(jù)。
PS:關(guān)注公眾號后臺回復(fù)關(guān)鍵詞【QQ群成員】即可獲得這份代碼。
總結(jié)
以上是生活随笔為你收集整理的python提取qq群成员代码_Python提取QQ群成员QQ号及昵称的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript --- 混入
- 下一篇: csp真题 202109-2非零段划分C