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