【QQ/微信個人號變身機器人】炸群+遠程監控個人PC的嘗試

2021-02-25 不二小段

最近簡直惰怠。公眾號的粉絲都開始負增長了。

其實一直沒有閒著,只不過沒寫成文字。大家可以在優酷關注我的帳號:不二小段,我會把日常一些探索錄屏給大家。

今天來簡單談談有關QQ機器人和微信機器人一些玩法。視頻已經錄過了,所以我就不寫太詳細了。

目錄的話大概是
→做個QQ機器人扔群裡和小冰炸群
→使用QQ消息控制自己電腦的網易雲音樂
→微信個人號變身機器人

關鍵詞:QQ/微信機器人;Python模擬滑鼠、鍵盤輸入;Python調用系統命令
環境:Windows、Python 3.5、網易雲音樂桌面版
:qqbot、itchat、wxpy、pyuserinput、subprocess
基礎:不需要什麼基礎,最好了解圖靈機器人的API接口調用

1

之前我們談過幾次微信公眾號的自動回復功能,其實用的都是圖靈語料庫的

API。最近我發現QQ群裡也有機器人,分別是小冰和小Q,其中小Q也是用的圖靈機器人,但是一個QQ群裡不能同時存在兩個官方機器人,那麼我們有沒有辦法把自己的QQ號打造成機器人,然後讓它在群裡和小冰尬聊呢?

自然是可以的,這也是我們今天這篇文章的開端。

我們首先來到qqbot。

具體的文檔詳見 https://github.com/pandolia/qqbot

直接 pip install qqbot 安裝後,大家可以按照官方樣例做一個最簡單的登陸和內容返回。

我這邊直接按照官方提供的樣例進行消息的註冊。之後我們通過之前做過的圖靈機器人API,將消息內容和聯繫人QQ號傳至圖靈API後,把返回內容發送回去即可。

首先是我自己寫的對圖靈機器人消息處理的函數。(talk.py)

import requests
import json
def talk(content, userid):    url = 'http://www.tuling123.com/openapi/api'    s = requests.session()    d = {"key": "", "info": content, "userid": userid}    data = json.dumps(d)    r = s.post(url, data=data)    text = json.loads(r.text)    code = text["code"]    
     if code == 100000:        result = text["text"]    
     elif code == 200000:        result = text["text"] + '\n' + text["url"]    
     elif code == 302000:        result = text["text"] + '\n' + text["list"][0]["article"] + text["list"][0]["detailurl"]    
     elif code == 308000:        result = text["text"] + '\n' + text["list"][0]["info"] + text["list"][0]["detailurl"]    
     return result

然後是qqbot這邊的操作。

import talk
from qqbot import QQBotSlot as qqbotslot, RunBot@qqbotslot

def onQQMessage(bot, contact, member, content):    if '@ME' in content:        result = talk.talk(content, contact.qq)        bot.SendTo(contact, '@' + member.name + ' '  + result)

if __name__ == '__main__':    RunBot()

代碼應該是十分好理解的。十分方便就可以把自己的QQ號變身機器人了。

這邊有一個不方便的地方。因為qqbot是封裝了網頁QQ的接口,而網頁QQ並不支持文件、語音或者@別人的功能。所以在QQ群裡,我自己的機器人總是@不到小冰。後面還是通過酷Q+圖靈實現的炸群。

詳見 http://www.tuling123.com/help/h_centqq_robot.jhtml?nav=doc

第一部分的視頻(裡面有兩個機器人炸群的內容):
http://v.youku.com/v_show/id_XMjc0MzU3NzI0OA==

2

群機器人最終的解決方案居然是酷Q+圖靈,這讓我感覺自己寫代碼毫無意義,十分尷尬。於是我就在想,這個機器人還可以做更多事情嗎?

我們設想一下,既然機器人可以接受來自QQ的消息,又可以對消息內容進行判斷後進行後續操作,那麼我們能否通過它來對自己的PC電腦做監控或者控制的功能?

於是我嘗試了一個相對簡單的想法:控制我電腦的網易雲音樂。

有了這個想法之後我在思考實現的方式。網易雲顯然是沒有給我們預留和Python交互的接口的。但是我想起之前踩過的一個深坑,那就是網易雲的全局快捷鍵和PyCharm的快捷鍵發生了衝突,導致我PyCharm格式化代碼的功能不能正常使用。那麼我們能否通過模擬全局快捷鍵的按鍵來實現對網易雲音樂的控制。

於是開始尋找Python模擬鍵盤的庫,找到了pyuserinput,可以很方便地模擬滑鼠和鍵盤的輸入內容(包括多按鍵組合快捷鍵)。

詳細內容可以看 https://github.com/SavinaRoja/PyUserInput

網易雲的快捷鍵可以在設置裡看到。

(空的那裡就是我之前提到的快捷鍵衝突的坑)

下面直接給代碼:

import talk
from qqbot import QQBotSlot as qqbotslot, RunBot
from pykeyboard import PyKeyboardk = PyKeyboard()

@qqbotslot
def onQQMessage(bot, contact, member, content):    if content == '播放':        k.press_keys([k.control_key, k.alt_key, 'p'])        bot.SendTo(contact, '開始播放')    
   elif content == '暫停':        k.press_keys([k.control_key, k.alt_key, 'p'])        bot.SendTo(contact, '暫停播放')    
   elif content == '上一首':        k.press_keys([k.control_key, k.alt_key, k.left_key])        bot.SendTo(contact, '切換上一首')    
   elif content == '下一首':        k.press_keys([k.control_key, k.alt_key, k.right_key])        bot.SendTo(contact, '切換下一首')

if __name__ == '__main__':    RunBot()

使用自己的QQ小號掃描二維碼登陸之後,發送相應消息就可以實現網易雲的播放/暫停/切歌功能。

第二部分的視頻(可以看到切歌的效果):
http://v.youku.com/v_show/id_XMjc0NDc4NTQ0NA==

3

來到第三部分。

第三部分裡面其實已經沒有什麼新鮮內容了,前面已經把大塊需要做的功能實現了,只需要把QQbot做好的東西遷移到我們的微信上就可以了。

微信這邊推薦給大家兩個庫,一個是itchat,一個是wxpy。
詳見:
https://github.com/littlecodersh/ItChat
https://github.com/youfou/wxpy

我寫完QQbot控制網易雲之後,有小夥伴說這樣需要網易雲已經打開的狀態下,能否添加打開/關閉網易雲的功能。

這樣的操作其實已經涉及到一些系統命令了。於是我們嘗試使用subprocess的Popen函數調用系統命令。

大家可以自己去了解Popen函數,我這邊直接給出打開/關閉的操作。

打開網易雲的操作是很簡單的,在Windows的CMD裡直接輸入相應路徑的exe就可以了,比如我本地的:
C:\Program Files (x86)\Netease\CloudMusic\cloudmusic.exe

關閉的操作稍微麻煩一點。我們可以通過tasklist /svc來查看電腦上正在運行的進程。

然後我們發現網易雲打開了三個進程。


想要關閉網易雲要求我們將三個進程關掉,需要用到命令
taskkill /im cloudmusic.exe /f /t

下面直接放代碼了。比之前的QQbot多了打開/關閉操作。

import itchat, time
from itchat.content import *
from pykeyboard import PyKeyboard
import subprocessk = PyKeyboard()

@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):    content = msg['Content']    print(content)    
   if content == '播放':        k.press_keys([k.control_key, k.alt_key, 'p'])            elif content == '暫停':        k.press_keys([k.control_key, k.alt_key, 'p'])            elif content == '上一首':        k.press_keys([k.control_key, k.alt_key, k.left_key])            elif content == '下一首':        k.press_keys([k.control_key, k.alt_key, k.right_key])                    elif content == '打開音樂':        subprocess.Popen(r'C:\Program Files (x86)\Netease\CloudMusic\cloudmusic.exe')    
   elif content == '關閉音樂':        subprocess.Popen(r'taskkill /im cloudmusic.exe /f /t')        
       itchat.auto_login(True)
itchat.run(True)

第三部分的視頻:
http://v.youku.com/v_show/id_XMjc1MTA2MzEwNA==

最後需要點出的幾個小問題:

0、公眾號代碼排版要用markdown排,總是出錯…可能會有縮進沒對齊的情況,希望不影響大家閱讀。總比貼圖片好一些。

1、測試時圖方便,並沒有加對消息來源的判斷,也就是說…只要任何一個人給我發 播放、暫停、打開、關閉、上一首、下一首這樣的內容,都可以控制我的網易雲…當然我相信你們不會那麼無聊的…自己用的時候加一步判斷就好了。
2、通過pyuserinput似乎是不能模擬一些系統級危險操作的組合鍵的(比如Crtl+Alt+Del),應該是安全限制。
3、之後會嘗試添加微信消息的語音識別功能。QQ的話不支持。
4、taskkill的關閉功能是強制殺進程,不是正常關閉操作。
5、希望對大家有所啟發,可以通過bot+Popen做更多對電腦的遠程控制操作。
最後,這篇文章提到的內容和詳細的教程視頻在我的優酷都可以找到,點擊閱讀原文去往我的優酷個人主頁。

如果有所幫助也希望大家不吝轉發到朋友圈。謝謝大家。有疑問可以在後臺留言交流。

相關焦點

  • 再給你微信漏洞,你敢去炸群嗎?
    昨天有一個漏洞,刷微信朋友圈Xss,今天都封號了,今天 我們再給你一個漏洞,你敢去炸群嗎?
  • 企業微信群機器人的操作方法
    企業微信的「群機器人」功能支持在內部群聊中添加「群機器人」,通過配置可以讓機器人自動推送消息,而且還可以發布機器人到公司供更多同事使用。也就是說,員工可以根據自身需求設置群聊機器人,讓其進行監控告警、數據推送、用戶反饋等,並提醒相關負責人快速處理。該功能有利於減少重複工作,精準提供數據支持,提高企業員工的工作效率。
  • 免費的QQ微信消息推送機器人,想要不?
    發到QQ現在已經不行了;發到微信還能用「itchat」,但必須保持手機在線且電腦不能登錄,還容易掉線。這兩天發現個好東西!發到QQ用「Qmsg醬」,發到微信用「Server醬」Qmsg醬是什麼QQ消息推送機器人,用來通知自己消息的免費服務。
  • 趙露思的個人微信號
    趙露思的微信號是多少?趙露思的微信二維碼被曝光?趙露思的微信號是多少?趙露思的微信二維碼被曝光?出生於1998年的四川姑娘趙露思在暑假爆紅,不過,對於趙露思的身高,引起了網友的注意。那麼,趙露思微信號多少?趙露思QQ帳號在用嗎?個人資料背景是富二代嗎?下面一起來了解下。2016年,超級女聲海選活動正在火熱進行中。
  • 星耀企微寶丨7個點全面分析「企業微信和個人微信」的區別
    企業微信不支持通過搜索微信號、qq號來添加好友,搜索手機號可以添加好友,但是被添加人的路徑比較長,而且申請好友時,被添加方收到的不是好友驗證消息,而是服務通知,大家看圖感受一下。做引流的小夥伴應該都用過個人號活碼,有了活碼就可以實現給多個個人號引流,但這種活碼在路徑上都無法實現,掃活碼直接添加個人號,而是需要有一個二維碼的中間跳轉頁,然後再添加個人號,相當於掃兩次碼。而企業微信的活碼,用戶只需要掃活碼,就可以直接添加到客服,系統會隨機分配客服二維碼,比個人號的優勢是,用戶只需掃一次碼。
  • 個人隱私已成幻覺 《活在無孔不入的監控社會》
    試想,當你的一言一語、一舉一動都暴露在他人的監控之下,成為一份可利用的數據,我們又與「透明人」何異?監控活動實是古已有之,隨著現代化技術的飛速發展,監控形式愈加花樣百出,監控範圍也由小變大,逐步擴散到全世界範圍內。從公共場所到私人空間,只要有聯網設備任何人都無所遁形。
  • 江智遠程安全監控系統助力柳南高速二線建設
    今日,江智結束了由廣西長長路橋建設集團承建的柳南高速二線工程的安全監控系統的安裝調試工作,江智研發的遠程監控系統再次應用於該項服務方案中。項目現場數據採集箱近年來,起重機領域對遠程監控的需求逐步明確,國家對安全生產的嚴格要求也讓更智能的監控系統成為安全建設剛需,江智遠程監控系統可實現:
  • 採用Java技術和Java 3D虛擬實境技術實現設備遠程監控系統的設計
    金小偉,鄭力 設備的遠程監控是製造系統遠程監控中的重要組成部分,包括對設備的運行進行監視和控制,對設備可能出現的故障進行預測,對設備已經出現的故障進行診斷等內容。因而在遠程監控系統設計中,特別是面向設備監控中,較多地包含圖形圖像信息以及聲音信息,包括現場的視頻信息以及將各種傳感器信息轉換成比較容易識別的圖形信息。 然而,由於圖形圖像等視頻信息和音頻信息的數據量非常大,嚴重阻礙了具有海量數據的信息在遠程監控系統中的使用,特別是在基於Intranet/Internet的遠程監控系統中的應用。
  • 未來,人類給機器人當保姆
    【獵雲網(微信號:ilieyun但這時又發現有一個機器人在巡邏,時刻監視著你。」而這種隱私問題在有真人「保姆」遠程通過機器人的攝像頭監控時會變得更加複雜。當人類與安保機器人發生互動的時候可能會想到這些機器人配置的攝像機會記錄發生的一切,但它們並不知道Knightscope也有一個呼叫中心,其中的工作人員全天待命。所以,到底是誰在看?
  • 微信小商店個人店和企業店有什麼區別 店鋪不同之處匯總
    微信小商店主要有個人店、企業店以及個體店這幾種不同的店鋪類型,那麼這幾種店鋪的不同之處分別是什麼呢,以下我們來一起看下不同的店鋪的用法介紹。1、功能差異:目前企業店功能更加完善,支持直播、優惠券、數據中心等功能,個人店的功能也在同步完善中,敬請期待。
  • 微信小商店全量開放,支持個人一鍵開店!
    中國財富網訊(衣韻潼)8月20日,微信宣布小商店全量開放,企業、個體、個人均可一鍵開店。在上線服務市場的同時,微信小商店還推出相關開放組件,供商家和服務商快速調用官方接口,進行個性化開發。據微信官方介紹,小商店由微信小程序團隊推出,意在幫助長尾商家、個體創業者免費、快速擁有賣貨小程序,在微信內實現電商業務的自主經營。據了解,自6月份內測以來,微信小商店即已助力眾多長尾商家和個體商戶實現線上經營賣貨並獲得營收。在個人開店流程中,個人按註冊指引,提供身份證、銀行卡等信息即可開店。
  • 微信不傳個人真實頭像會被鎖群?真相竟然是...
    ❶微信上分飾兩角表妹騙了表哥兩萬八女子周某為了騙錢,註冊另一個身份的微信號和表哥談「戀愛」,並以各種理由騙了表哥2.8萬餘元。昨天,現代快報記者從常州經開區法院獲悉,法院近日對該起詐騙案件作出判決。在一次家庭聚會上,周某認識了遠房表哥李某,李某家產頗豐,人也比較老實,兩人互加了微信開始聊天。
  • 張家口市處理五起通過網絡侵犯公民個人隱私案件
    嶽某某侵犯他人隱私被行政拘留2020 年1月30日16時40分許,河北省高速張承張家口管理處監控中心工作人員嶽某某在巡查高速路段視頻監控時,利用職務之便,用個人手機私自拍攝錄製了一段車上駕駛人和同乘人發生不雅行為時的視頻,並通過其個人微信轉發,導致此視頻在網上擴散,造成了不良的社會影響
  • 安徽鍋爐遠程監控設備特點
    安徽鍋爐遠程監控設備特點  4.提高設備效率和生產率,降低人力成本 以上就是PLC遠程監控的功能內容,如需了解更多請繼續關注藍蜂科技網站,採購產品可直接聯繫我們。物聯網平臺能提供什麼解決方案工業物聯網是「中國製造2025」的實現方式  從18世紀末工業革命開始,人類工業經歷了蒸汽時代、電氣時代和數位化時代,並即將步入萬物互聯的智能化工業時代。
  • 因租借微信帳號產生的帳號封號申訴量已超1萬例!租QQ、租微信的...
    隨後,便利用租來的帳號實施欺詐、散播黃賭毒等不良信息,致使受害人身份信息被洩露和利用,個人或親朋好友資金受損,帳號封停,甚至因此承擔法律責任。目前,已有大量消費者投訴反映其QQ/微信帳號被封停,而自己對違規行為毫不知情。來自騰訊的數據顯示,2020年至今,騰訊方面收到因租借微信帳號產生的帳號封號申訴量已超1萬例。「租借QQ/微信帳號存三大嚴重安全隱患。」
  • 微信公眾號註冊數量調整 個人限定為2個
    【手機中國 新聞】2月11日消息,昨日微信公眾平臺發布公告,表示為了貫徹落實相關政策法規,切實履行平臺主體責任,進一步加強帳號管理,即日起公眾號註冊將進行調整,個人主體註冊公眾號數量上限由5個調整為2個,組織類主體註冊公眾號數量上限由50個調整為5個。
  • 新加坡個人帳戶|新加坡花旗銀行CitiBank遠程開戶指南
    新加坡個人帳戶|新加坡花旗銀行CitiBank遠程開戶指南! 因為疫情的影響,對於國際貿易及海外投資需求的企業及個人而言,開設海外銀行帳戶接收貨款變得較為困難,眾多企業家都開始尋求新的開戶地域。
  • 買賣微信號 男子涉嫌侵犯公民個人信息罪被批捕
    買賣微信號年「賺」20餘萬男子涉嫌侵犯公民個人信息罪被批捕華聲在線12月13日訊 聽說過高價收購舊手機、二手車,現在竟然還有人高價收購微信號,驚訝之餘是不是很心動?今天,記者從衡陽市石鼓區檢察院獲悉,嫌疑人陽某某販賣微信號,獲利20餘萬元,因涉嫌侵犯公民個人信息罪被批捕。2019年6月,高中畢業的陽某某偶然在網上發現,收購的微信號轉賣出去可以獲取高額收益,便開始用盡心思仔細琢磨如何通過網絡實施買賣微信號交易獲利。「我通過加微信群、或是發廣告等多種途徑從上線手中購入微信帳號。」
  • qq群控機器人|qq群控機器人自動加群加人軟體 98 正式版下載...
    qq群控機器人自動加群加人軟體 微信營銷 大小: 5.07 MB 版本: