用Python來(lái)實(shí)現(xiàn)對(duì)所有QQ好友群發(fā)消息

一皿伺、介紹

QQBot 是一個(gè)用 python 實(shí)現(xiàn)的、基于騰訊 SmartQQ 協(xié)議的簡(jiǎn)單 QQ 機(jī)器人,可運(yùn)行在 Linux 和 Windows 平臺(tái)下市咽,所有代碼均集成在一個(gè) qqbot.py 文件中,代碼量?jī)H 400 多行(不包括注釋?zhuān)┑治谩3绦虿捎脝尉€程的方式運(yùn)行施绎,且盡可能的減少了網(wǎng)絡(luò)和登錄錯(cuò)誤(特別是所謂的 103 error )發(fā)生的概率。

  • 你可以用 QQBot 來(lái)實(shí)現(xiàn):

  • 監(jiān)控贞绳、收集 QQ 消息

  • 自動(dòng)消息推送

  • 聊天機(jī)器人

  • 通過(guò) QQ 遠(yuǎn)程控制電腦谷醉、智能家電


二.安裝方法

可用 pip 安裝,安裝命令:

$ pip install qqbot

也可以直接下載qqbot.py運(yùn)行冈闭,但需先安裝requests庫(kù)俱尼。

安裝qqbot-CMD窗口

1. 啟動(dòng) QQBot

在命令行輸入:qqbot,或直接運(yùn)行qqbot.pypython qqbot.py萎攒。啟動(dòng)過(guò)程中會(huì)自動(dòng)彈出二維碼圖片(Linux下需安裝有 gvfs 遇八,否則需要手動(dòng)打開(kāi)圖片),需要用手機(jī) QQ 客戶(hù)端掃碼并授權(quán)登錄耍休。啟動(dòng)成功后押蚤,會(huì)將本次登錄信息保存到本地文件中,下次啟動(dòng)時(shí)羹应,可以輸入:qqbot qq號(hào)碼揽碘,或:python qqbot.py qq號(hào)碼园匹,先嘗試從本地文件中恢復(fù)登錄信息(不需要手動(dòng)掃碼)裸违,只有恢復(fù)不成功或登錄信息已過(guò)期時(shí)才會(huì)需要手動(dòng)掃碼登錄供汛。

  • 我在這里是重新打開(kāi)的一個(gè)窗口,直接輸入qqbot 回車(chē)
輸入qqbot

然后出現(xiàn)二維碼圖


掃描二維碼.png

顯示登陸成功


顯示成功登錄.png

注意,掃完以后赖捌,當(dāng)前的CMD窗口是不可以再操作的了,我們需要重新打開(kāi)一個(gè)窗口罩锐。直接輸入命令涩惑,就可以顯示出來(lái)了竭恬。

常用的操作萍聊,我附在這里寿桨,大家可以自己嘗試一下:

QQBot 啟動(dòng)后强戴,在另一個(gè)控制臺(tái)窗口使用 qq 命令操作 QQBot 预烙,目前提供以下命令:

1) 幫助扁掸、停機(jī)和重啟命令

qq help|stop|restart|fresh-restart

2) 聯(lián)系人查詢(xún)最域、搜索命令

qq list buddy|group|discuss [$cinfo|$clike]

( $cinfo --> $qq|$name|$key=$val )

( $clike --> :like:$qq|:like:$name|$key:like:$name )

qq list group-member|discuss-member $oinfo|$olike [$cinfo|$clike]

( $oinfo --> $oqq|$oname|$okey=$oval )

( $cinfo --> $qq|$name|$key=$val )

( $olike --> :like:$oqq|:like:$oname|$okey:like:$oname )

( $clike --> :like:$qq|:like:$name|$key:like:$name )

3) 聯(lián)系人更新命令

qq update buddy|group|discuss

qq update group-member|discuss-member $ginfo

4) 消息發(fā)送命令

qq send buddy|group|discuss $rinfo $message

5) 群管理命令: 設(shè)置/取消管理員 牺蹄、 設(shè)置/刪除群名片 沙兰、 群成員禁言 以及 踢除群成員

qq group-set-admin $ginfo $minfo1,$minfo2,...

qq group-unset-admin $ginfo $minfo1,$minfo2,...

qq group-set-card $ginfo $minfo1,$minfo2,... card

qq group-unset-card $ginfo $minfo1,$minfo2,...

qq group-shut $ginfo $minfo1,$minfo2,... [t]

qq group-kick $ginfo $minfo1,$minfo2,...

6) 加載/卸載/顯示插件

qq plug/unplug myplugin

qq plugins

list 命令提供強(qiáng)大的聯(lián)系人查詢(xún)和搜索功能鼎天,用法示例如下:

列出所有好友

qq list buddy

列出 QQ 為 123456 的群

qq list group 123456

列出備注名為 jack 的好友

qq list buddy mark=jack

列出 群“456班” 的所有成員

qq list group-member 456班

列出 群“456班” 中名片為 “mike” 的成員

qq list group-member 456班 card=mike

列出 討論組“XX小組” 中名為 jack 的好友

qq list discuss-member XX小組 jack

其中第三伪节、四個(gè)參數(shù)如果是 key=val 的格式绩鸣,則應(yīng)為 name=xx|nick=xx|mark=xx|card=xx|qq=xx 的格式呀闻,如果不是 key=val 的格式捡多,則按以下原則進(jìn)行處理:若是一串?dāng)?shù)字铐炫,則按 QQ 號(hào)進(jìn)行查詢(xún)科贬,否則鳖悠,按名稱(chēng)進(jìn)行查詢(xún)。

如果存在重名現(xiàn)象憎账,會(huì)列出所有重名的聯(lián)系人胞皱。如:

qq list group 機(jī)器人測(cè)試

將列出所有名為 “機(jī)器人測(cè)試” 的群反砌。

如果在 list 命令的第三于颖、四個(gè)參數(shù)中加入 “:like:” 森渐,則會(huì)按部分匹配的模式進(jìn)行搜索,用法示例如下:

列出名稱(chēng)中含有 “李” 的好友

qq list buddy :like:李

列出 QQ 中含有 “234” 的群

qq list group :like:234

列出備注名中含有 jack 的好友

qq list buddy mark:like:jack

列出 群“456班” 的中名稱(chēng)中含有 “李” 的成員

qq list group-member 456班 :like:李

列出 群“456班” 中名片中含有 “mike” 的成員

qq list group-member 456班 card:like:mike

列出的 討論組“xx小組” 中名為 jack 的好友

qq list discuss-member :like:小組 jack

從 v2.2.5 版開(kāi)始, list 命令采用表格的形式輸出聯(lián)系人列表浪秘,其輸出樣式示例如下:

輸出樣式

為保證表格在終端中的顯示效果耸携,建議將終端的輸出字體設(shè)置為 consolas 夺衍、且每行可打印的最大字符數(shù)大于 120 沟沙。另外需要注意:為保證表格的顯示效果矛紫,當(dāng)聯(lián)系人的名稱(chēng)颊咬、名片等屬性的長(zhǎng)度太長(zhǎng)或含有特殊字符時(shí)贪染,將對(duì)這些屬性進(jìn)行截?cái)嗷蜻^(guò)濾后再輸出至終端杭隙。

update 命令更新指定的聯(lián)系人列表痰憎,其參數(shù)含義和 list 命令相同铣耘,如:

更新好友列表

qq update buddy

更新群列表

qq update group

更新 群“456班” 的成員列表

qq update group-member 456班

send 命令中第三個(gè)參數(shù)和 list 命令中的第三個(gè)參數(shù)格式一致以故。要注意蜗细,如果有重名現(xiàn)象,會(huì)給所有重名的聯(lián)系人發(fā)信息。 另外要注意炉媒,第二個(gè)參數(shù)只能是 buddy/group/discuss 踪区,不能是 group-member/discuss-member 。示例:

給 好友“jack” 發(fā)消息 “你好”

qq send buddy jack 你好

給 群“198班” 發(fā)消息 “大家好”

qq send group 198班 大家好

給 QQ 為 12345 的好友發(fā)消息

qq send buddy 12345 xxx

給討論組發(fā)消息

qq send discuss MyDiscuss hello

可以在消息內(nèi)容中嵌入“/可愛(ài)”等表情關(guān)鍵詞來(lái)向?qū)Ψ桨l(fā)送表情吊骤,詳見(jiàn)facemap.py缎岗。還可以在消息內(nèi)容中使用\n,\t這兩個(gè)轉(zhuǎn)義字符(如: send buddy jack 第一行\(zhòng)n第二行)。

群管理命令中的 $ginfo 和 $minfo 和 list 命令中的第三白粉、四個(gè)參數(shù)格式一致传泊。例如:

禁止 群“456班” 中的 jack,mike,jim 發(fā)言( 2 分鐘)

qq group-shut 456班 jack,mike,jm 120


四.實(shí)現(xiàn)我們自己的群發(fā)信息功能

我們打開(kāi)Eclipse 編輯環(huán)境,這里我用的是Python 3.5的IDLE。創(chuàng)建好項(xiàng)目和PyDev文件以后掌敬。我們開(kāi)始用代碼來(lái)實(shí)現(xiàn)群發(fā)

from qqbot import _bot as bot
#先導(dǎo)入包
bot.Login(['-q', '37654234'])
#這里第二個(gè)參數(shù)是你自己的QQ號(hào)
my_bol = []
#我們先得到好友列表
bol=bot.List('buddy')
#用切片復(fù)制到新的列表中
my_bol=bol[0:]
#遍歷好友列表
for my_k in my_bol:

    if my_k:
         #向好友發(fā)送消息
        bot.SendTo(my_k,':Good Morning/早上好!')
        

效果圖如下


群發(fā)成功返回的消息

注意如果华临,你的好友比較多的話扶供,不要都發(fā)一樣的。可以用一下隨機(jī)數(shù)碱蒙,提前存儲(chǔ)一些句子在列表里坊秸,然后用隨機(jī)數(shù)來(lái)控制。

到此就結(jié)束了走孽,小伙伴們困食,趕緊試一試吧4窭Hで恪部凑!

注:以上內(nèi)容有參考互聯(lián)網(wǎng)大神的帖子比勉,如果沒(méi)有事先聲明衣洁,引用了。請(qǐng)私下聯(lián)系我。
QQ郵箱:99260040@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唆阿,隨后出現(xiàn)的幾起案子益涧,更是在濱河造成了極大的恐慌闲询,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)摘能,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)姆涩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)闷游,“玉大人,你說(shuō)我怎么就攤上這事贴汪∑晖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵扳埂,是天一觀的道長(zhǎng)业簿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)聂喇,這世上最難降的妖魔是什么辖源? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任蔚携,我火速辦了婚禮,結(jié)果婚禮上克饶,老公的妹妹穿的比我還像新娘酝蜒。我一直安慰自己,他們只是感情好矾湃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布亡脑。 她就那樣靜靜地躺著,像睡著了一般邀跃。 火紅的嫁衣襯著肌膚如雪霉咨。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,231評(píng)論 1 299
  • 那天拍屑,我揣著相機(jī)與錄音途戒,去河邊找鬼。 笑死僵驰,一個(gè)胖子當(dāng)著我的面吹牛喷斋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒜茴,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼星爪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了粉私?” 一聲冷哼從身側(cè)響起顽腾,我...
    開(kāi)封第一講書(shū)人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诺核,沒(méi)想到半個(gè)月后抄肖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猪瞬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年憎瘸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陈瘦。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖潮售,靈堂內(nèi)的尸體忽然破棺而出痊项,到底是詐尸還是另有隱情,我是刑警寧澤酥诽,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布鞍泉,位于F島的核電站,受9級(jí)特大地震影響肮帐,放射性物質(zhì)發(fā)生泄漏咖驮。R本人自食惡果不足惜边器,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望托修。 院中可真熱鬧忘巧,春花似錦、人聲如沸睦刃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)涩拙。三九已至际长,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兴泥,已是汗流浹背工育。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搓彻,地道東北人如绸。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像好唯,于是被迫代替她去往敵國(guó)和親竭沫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容