摘要:一介紹是一個(gè)用實(shí)現(xiàn)的基于騰訊協(xié)議的簡單機(jī)器人,可運(yùn)行在和平臺下,所有代碼集成在一個(gè)文件中。三使用方法啟動在命令行輸入,或直接運(yùn)行。操作機(jī)器人啟動后,用另外一個(gè)向本發(fā)送消息即可操作。
一、介紹
QQBot 是一個(gè)用 python 實(shí)現(xiàn)的、基于騰訊 SmartQQ 協(xié)議的簡單 QQ 機(jī)器人,可運(yùn)行在 Linux 和 Windows 平臺下,所有代碼集成在一個(gè)?qqbot.py 文件中。
QQBot 可以實(shí)現(xiàn):
監(jiān)控、收集 QQ 消息
自動消息推送
聊天機(jī)器人
通過 QQ 遠(yuǎn)程控制電腦、智能家電
可用 pip 安裝,安裝命令:
pip install qqbot
也可以直接下載?qqbot.py 運(yùn)行,但需先安裝?requests 庫。
三、使用方法1. 啟動 QQBot
在命令行輸入:?qqbot?,或直接運(yùn)行qqbot.py:?python qqbot.py?。啟動過程中會自動彈出二維碼圖片(Linux下需安裝有 gvfs ,否則需要手動打開圖片),需要用手機(jī) QQ 客戶端掃碼并授權(quán)登錄。啟動成功后,會將本次登錄信息保存到本地文件中,下次啟動時(shí),可以輸入:?qqbot qq號碼,或:python qqbot.py qq號碼?,則會先嘗試從本地文件中恢復(fù)會話信息(不需要手動掃碼),只有恢復(fù)不成功或登錄信息已過期時(shí)才會需要手動掃碼登錄。
2. 操作 QQBot
QQ 機(jī)器人啟動后,用另外一個(gè) QQ 向本 QQ 發(fā)送消息即可操作 QQBot 。目前提供以下命令:
1) 列出 好友/群/討論組: -List buddy/group/discuss 2) 向 好友/群/討論組 發(fā)送消息: -SendTo buddy/group/discuss message 3) 停止 QQBot : -Stop()四、登錄 QQ 機(jī)器人
from qqbot import QQBot import qqbot # QQBot 就是一個(gè)qq登錄的類 myqqbot = QQBot() #實(shí)例化一個(gè)qq實(shí)例 myqqbot.Login() #進(jìn)行登錄,執(zhí)行這條命令,系統(tǒng)會彈出一個(gè)二維碼,我們掃碼登錄 myqqbot.pollForever()五、 QQ機(jī)器人使用
1.獲取好友列表和群組列表
from qqbot import QQBot import qqbot myqqbot = QQBot() #實(shí)例化一個(gè)qq實(shí)例 myqqbot.Login("385395438") # 掃碼登錄過后會在本地保存一個(gè)session信息,加上QQ號即可調(diào)用本地session進(jìn)行登錄 # 1.使用腳本來查看好友和群 user_list = myqqbot.List("buddy") # 獲得的是所有的好友 for user in user_list: print(user) group_list = myqqbot.List("group") # 獲得的是所有的群組 for group in group_list: print(group)
運(yùn)行:
4262139-a682bd21b9f5f799.png
2.給某一個(gè)好友發(fā)送信息
# 2.給某一個(gè)好友發(fā)送信息 user = myqqbot.List("buddy", "LOL")[0] myqqbot.SendTo(user, "LOL, 在嗎")
運(yùn)行:
3.給群組發(fā)送消息
# 3.給某一個(gè)群組發(fā)送信息 group = myqqbot.List("group", "谷歌中國")[0] myqqbot.SendTo(group, "大家好,這是君惜的機(jī)器人") # group_list = myqqbot.List("group") # for group in group_list: # myqqbot.SendTo(group, "大家好,這是君惜的機(jī)器人")
運(yùn)行:
4.退出QQ
# 4.退出QQ myqqbot.Stop() # 退出qq
5.自動回復(fù)
# 5.自動回復(fù) # 自動回復(fù)部分我們需要調(diào)用一個(gè)監(jiān)聽的方法 @qqbot.QQBotSlot def onQQMessage(bot, contact, member, content): """ :param bot: qq對象 :param contact: 發(fā)信人 :param member: 發(fā)消息的對象,只對群組有作用 :param content: 內(nèi)容 """ if content == "-hello": bot.SendTo(contact, "你也好啊, /齜牙") elif "@ME" in content and "簽到" in content: """ 當(dāng)滿足此條件就 判斷該成員是否已經(jīng)簽到過 調(diào)用數(shù)據(jù)庫查看用戶的信息 判斷條件 簽到時(shí)間 進(jìn)行簽到 簽到時(shí)間 當(dāng)前時(shí)間 簽到次數(shù) +1 簽到積分 +2 你已經(jīng)簽到多少天,積分多少 """ bot.SendTo(contact, "/菜刀 咋地了?") elif "@ME" in content and "兌換" in content: """ 返回資源列表 """ bot.SendTo(contact,"/菜刀 咋地了?") if __name__ == "__main__": qqbot.RunBot()
運(yùn)行:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41631.html
摘要:套接字有兩種或者稱為有兩個(gè)種族分別是基于文件型的和基于網(wǎng)絡(luò)型的。大部分網(wǎng)絡(luò)設(shè)備的都是。不會發(fā)生黏包,用戶數(shù)據(jù)報(bào)協(xié)議是無連接的,面向消息的,提供高效率服務(wù)。即面向消息的通信是有消息保護(hù)邊界的。 軟件開發(fā)的架構(gòu) 我們了解的涉及到兩個(gè)程序之間通訊的應(yīng)用大致可以分為兩種: 第一種是應(yīng)用類:qq、微信、網(wǎng)盤、優(yōu)酷這一類是屬于需要安裝的桌面應(yīng)用 第二種是web類:比如百度、知乎、博客園等使用瀏覽器...
摘要:在任何類型的通信開始之前,網(wǎng)絡(luò)應(yīng)用程序必須創(chuàng)建套接字?;谖募奶捉幼?,家族名又名基于網(wǎng)絡(luò)的套接字,家族名在和后續(xù)的版本中,支持的套接字有,,,。中的網(wǎng)絡(luò)編程在中主要是用模塊來實(shí)現(xiàn)基于套接字的網(wǎng)絡(luò)通信。 python學(xué)習(xí)記錄--網(wǎng)絡(luò)編程 1、套接字介紹 一臺機(jī)器上的不同進(jìn)程之間進(jìn)行通信可以利用隊(duì)列,管道等,但是不同機(jī)器之間的進(jìn)程進(jìn)行通信用隊(duì)列是不行的,解決這個(gè)問題就是網(wǎng)絡(luò)套接字。 套接...
閱讀 1321·2023-04-25 20:31
閱讀 3806·2021-10-14 09:42
閱讀 1621·2021-09-22 16:06
閱讀 2801·2021-09-10 10:50
閱讀 3675·2021-09-07 10:19
閱讀 1883·2019-08-30 15:53
閱讀 1261·2019-08-29 15:13
閱讀 2902·2019-08-29 13:20