受到疫情的影響宋欺,今年的這個假期顯得格外的長,可能是我國建國以來最長的一次的吧欠痴。很多同學們大呼“我第一次這么想去上學”迄靠,“去年在家撿蘑菇,今年在家長蘑菇”喇辽,“這個寒假有暑假的味道了”掌挚,想來大家在家中憋得也是很是辛苦。每天早上起來看看疫情數(shù)據(jù)菩咨,看看最動態(tài)吠式,早飯后各種線上娛樂一頓操作陡厘,下午和晚上也是差不多了。第一次感覺豬生活得也很不容易啊特占。
雖然每天都盼著早些去上學糙置,早些回公司上班,但這個假卻是越放越長是目。本來部分地區(qū)最初是打算在二月的中下旬開始開學的谤饭,這些天突然又推遲到的三月份,而且具體時間還要等后面的通知懊纳。一些公司也是打算先部分人在家中辦公揉抵,然后9號之后返回公司開始上班,部分人可能行李都準備好了嗤疯,可是又接到延遲返回公司的通知冤今。用一句話來形容大家就是,“閑的發(fā)慌呀”茂缚!
而現(xiàn)實是戏罢,即使在全國人民都最有時間聊天的時候都沒有人找你聊天的話,說明真的沒有人喜歡你脚囊。聽到這句話時龟糕,不知道有多少單身狗受到了一萬點傷害,不過放心凑术,我與你們同在(笑哭.jpg)翩蘸。都說自己動手,豐衣足食淮逊,沒有人找自己聊天催首,就要創(chuàng)造機會讓自己去聊天,哪怕對面是個機器人呢泄鹏。與其等女神/男神來撩自己郎任,有一句沒一句的聊著,半天都不回消息备籽,不如自己動手打造一個屬于自己一個人的舶治,會唱會跳會rap,脾氣超好车猬,消息秒回的女神/男神呢霉猛?
話不多說,開工珠闰!
準備工作
一臺電腦惜浅,一個手機,一個熱水袋伏嗜,兩個微信號
什么,我沒有兩個微信號怎么辦?怎么辦定嗓,活人能讓尿憋死不成,注冊一個唄挣轨。
那熱水袋又是什么鬼?哦轩猩,天氣冷卷扮,暖暖手。
運行環(huán)境準備
(1)Python3.5及以上版本(Python2.7已經(jīng)停止更新均践,雖然還能用)
(2)使用Pip安裝最新的的itchat, requests庫
? ? ? ? ? pip install --upgrade pip? #使用前先更新一下pip
? ? ? ? ? pip install itchat requests #安裝itchat, requests庫
可以通過在python交互界面中導入庫看是否安裝成功画饥,如果像下圖中沒有報錯,說明安裝成功浊猾。
庫使用介紹
(1)itchat
itchat是一位牛人根據(jù)網(wǎng)頁版微信接口做出來的庫,能夠實現(xiàn)微信消息的各種功能热鞍。例如加好友自動通過葫慎,群消息回復,消息中提到我回復薇宠,接受公眾號消息偷办,文字、圖片澄港、音頻以及視頻消息等多種消息的接受和回復椒涯。這個庫使用起來十分的輕便,再次登入時可以不用再掃碼回梧,而且能夠保持長時間登入废岂。在回復的消息中,也可以是文字狱意,圖片湖苞、音頻或者視頻,配合起來使用详囤,十分的有趣财骨。下面是一個簡單的登入,監(jiān)聽消息以及回復的簡單例子藏姐。
importitchatfromitchat.contentimportTEXT@itchat.msg_register(TEXT)defsimple_reply(msg):print(msg['Text'])returnmsg['Text']itchat.auto_login(hotReload=True)itchat.run()
簡單分析一下隆箩。代碼的最開始兩行,導入itchat庫和一個TEXT的消息類型羔杨。中間的是消息注冊器捌臊,監(jiān)聽是否接收到文字消息,如果有的話问畅,消息打印出來娃属,同時將原消息發(fā)送回去六荒。最后兩行是登入與一直運行。值得注意的是矾端,hotReload=True?這個參數(shù)加上之后掏击,第一次掃碼登入時會產(chǎn)生一個pkl文件,那么在下一次登入時秩铆,就可以不用再次掃碼了砚亭。
關于itchat的更多使用,大家可以參考這篇博客和官方網(wǎng)站(加載好慢)介紹殴玛。
Python微信庫:itchat?www.cnblogs.com
itchat api中文?itchat.readthedocs.io
(2)requests庫
相信了解過爬蟲的朋友們對這個庫一定不會陌生了捅膘,即使沒有真正地學過爬蟲,也一定有所耳聞的滚粟。requests庫是一個常用于網(wǎng)絡通信的的庫寻仗,當然通信協(xié)議是http/https一類的。以我們用瀏覽器打開一個網(wǎng)頁為例凡壤。首先是我們向地址框輸入一個地址署尤,瀏覽器開始發(fā)起請求(request)。然后瀏覽器等待服務器的響應(resoponse)亚侠,如果沒有出現(xiàn)錯誤的話曹体,那么就會返回一個響應。最后瀏覽器會將響應解析硝烂,然后呈現(xiàn)在瀏覽器頁面上箕别。
那么,requests庫做了什么呢滞谢。一般來說串稀,requests庫完成了瀏覽器訪問一個網(wǎng)頁的前兩個步驟,即發(fā)送請求和得到響應狮杨。至于解析部分厨诸,根據(jù)個人目的和喜好,可以使用不同的方式進行解析禾酱。比如爬蟲中就常以BeautifulSoup對響應的content(文本)進行解析微酬,按規(guī)則查找自己想要的內容。
注冊一個機器人
目前有些平臺推出了各種各樣的人工智能聊天服務颤陶,比如騰訊颗管,百度和阿里,網(wǎng)絡上也有很多其他類似的服務滓走。通常來說垦江,這些服務都是面向接口開發(fā)的,我們在做自己東西的時候也只需要按照其服務介紹進行編程即可搅方。在該文中比吭,使用的是騰訊的智能閑聊绽族,畢竟大廠做出來的東西總是要好一些的嘛。而且個人每天還有7000次的接口調用次數(shù)衩藤,爽得不得了吧慢,比起一些動不動就付費的平臺來講,大氣多了赏表。
使用的時候呢检诗,我們只需要注冊一個機器人,得到它的key就可以了瓢剿。至于如何接收數(shù)據(jù)逢慌,官方文檔中寫得再清楚不過了。為了節(jié)省大家時間间狂,還是直接給地址吧(有些搜索引擎不想讓我好好學習)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??文檔中心-騰訊AI開放平臺?ai.qq.com
當然攻泼,厲害一些的,家里有礦的大佬鉴象,也可用語料庫通過深度學習自己訓練一個好的網(wǎng)絡坠韩,然后再整合一些其他功能,做一個100%原生態(tài)的機器人炼列。對于大部分人來說,有免費且好用的機器人音比,咱就不挑剔了俭尖。
代碼編寫
到了這里,大家基本上已經(jīng)搞懂了如何去編寫了洞翩。以上面自動回復為例吧稽犁,只需將接受來的消息送入API接口充當參數(shù),然后將得到的響應作為新的消息發(fā)送出去骚亿,那么這樣就完成了一次你與機器人之間的對話了已亥。當然,此外我們也是需要加一些控制的来屠。比如回復的速度不要太快了虑椎,稍作一些延遲,避免被封俱笛。還有就是要做回復人的控制捆姜,不能每一個人都自動回復了,萬一別人真有些事要找你呢迎膜?可以考慮加一些好友白名單泥技,關鍵詞之類的,再加一個機器人啟動和停止關鍵詞磕仅。那么這樣的話珊豹,基本上簸呈,一個完整的機器人就算是完成了。
至于如何把TA調教好的話店茶,哈哈蜕便,那就根據(jù)個人口味愛好在機器人中去做自己的設置嘍。
放心忽妒,這里沒有代碼玩裙,留個大家一些思考和成長的時間。俗話說段直,授人以魚吃溅,不如授人以漁。多遇見幾個Bug或者Error就成長了鸯檬。
是不是心動了呢决侈?快樂其實很簡單,自動動動腦子喧务,動動手就可以創(chuàng)造出來赖歌。看起來很復雜功茴,做起來其實很簡單庐冯。用很少的代碼,獲取很多的快樂坎穿,這個假期展父,讓自己不再孤單。