python-微信自動回覆(附原始碼)
阿新 • • 發佈:2018-12-30
今天發現一個好玩的專案,用python實現微信自動回覆。
來源:https://mp.weixin.qq.com/s/3q5l14c1BvJUtEmEkOA_Rw
用起來記得把引數改改。
原始碼:
import itchat import requests import re # 抓取網頁 def getHtmlText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" # 自動回覆 # 封裝好的裝飾器,當接收到的訊息是Text,即文字訊息 @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture']) def text_reply(msg): # 當訊息不是由自己發出的時候 if not msg['FromUserName'] == Name["pikachu"]: # 回覆給好友 url = "http://www.tuling123.com/openapi/api?key=apikey&info=" url = url + msg['Text'] html = getHtmlText(url) message = re.findall(r'"text":".*?"',html) reply = eval(message[0].split(':')[1]) return reply if __name__ == '__main__': itchat.auto_login() # 獲取自己的UserName friends = itchat.get_friends(update=True)[0:] Name = {} Nic = [] User = [] for i in range(len(friends)): Nic.append(friends[i]["NickName"]) User.append(friends[i]["UserName"]) for i in range(len(friends)): Name[Nic[i]] = User[i] itchat.run()
原理:
這個就是自動登入網頁版微信(這是itchat庫的功能),把聯絡人傳送的訊息輸入圖靈機器人,然後把URL頁面上的訊息抓下來,返回給聯絡人。
這個功能還挺有用的,可以接入自己的資料庫,就可以查詢想要的資料啦。
作者的效果圖: