1. 程式人生 > >itchat+線上聊天機器人介面實現微信聊天機器人

itchat+線上聊天機器人介面實現微信聊天機器人

閒來無事(其實還在期末考試),想著怎麼利用手裡的伺服器搞點事情時,發現了python的itchat庫,想著可以再利用網頁聊天機器人,做一個自動聊天的微信機器人。

總體思路很簡單,用itchat登入微信,接受訊息,通過聊天機器人的介面傳送給聊天機器人,在將接受到的訊息通過itchat發給使用者,實現自動聊天。

經過幾番尋找,找到一個聊天還算智慧(語氣逗比)的線上聊天機器人,


在瀏覽器裡找介面還是有點亂,用burp抓包清楚一些:


我們的每一條訊息應該是通過GET方法傳入,然後返回資料中的content中應該包含回覆內容,用python解碼試一下:


接下來構造url就可以了,我的思路是url解碼後拼接再url編碼傳送,



從返回的資料中用正則匹配出我們想要的資料:


既然已經可以拿到返回資料了,就可以用itchat庫從微信上接受傳送了:



執行之後會有二維碼圖片生成,掃碼登入微信網頁版即可。

操作很簡單的。

所有程式碼:

import itchat,code,unicodedata
import requests,re
from urllib.parse import quote,unquote

def get_reply(data):
    ini = "{'sessionId':'09e2aca4d0a541f88eecc77c03a8b393','robotId':'webbot','userId':'462d49d3742745bb98f7538c42f9f874','body':{'content':'" 
+ data + "'},'type':'txt'}&ts=1529917589648" url = "http://i.xiaoi.com/robot/webrobot?&callback=__webrobot_processMsg&data=" + quote(ini) cookie = {"cnonce": "808116", "sig": "0c3021aa5552fe597bb55448b40ad2a90d2dead5", "XISESSIONID": "hlbnd1oiwar01dfje825gavcn", "nonce": "273765"
, "hibext_instdsigdip2": "1"} r = requests.get(url, cookies=cookie) print(r.text) pattern = re.compile(r'\"fontColor\":0,\"content\":\"(.*?)\"') result = pattern.findall(r.text) print(result[1]) return result[1] @itchat.msg_register(itchat.content.TEXT) def print_content(msg): print(msg['Text']) print(msg['FromUserName']) datas=get_reply(msg['Text'])[:-4] print(datas) itchat.send(datas, toUserName=msg['FromUserName']) itchat.auto_login() itchat.run()


小白選手,正則用的不太好,程式碼也沒什麼規範,大佬就別吐槽了。

另外如果用 圖靈機器人或者小黃雞提供的API效果會更好,不過網上教程已經很多了,這裡就是提供一個其他思路。

轉載指明出處