話不多說,看效果圖:
先說下原理:
微信接收到你說的話,發給機器人來回復,用回覆的話傳參給鬥圖網,然後獲得鬥圖網返回的圖片,保存後把圖片再發給跟你鬥圖的人。
鬥圖啦官網API調用文檔
鬥圖啦官網
菜單欄的 站長開發→鬥圖啦API 即可看到 api 接口調用方式。
urllib.request() 用於把圖片鏈接保存爲本地圖片。
requests 可以通過 post 和 get 兩種請求方式獲得api獲得的返回值。
itchat.send_image() 用於發送圖片給微信好友。
import itchat
import requests
import urllib.request
# 獲得機器人的請求
def get_response(msg):
# 調用莉莉機器人,獲得回覆
apiUrl = 'http://i.itpk.cn/api.php'
data = {
'question':msg,
}
r = requests.get(apiUrl, params = data) # get請求
text = r.text.encode('utf-8')[3:].decode('utf-8') # 去掉text文本里的BOM開頭,就是獲得回覆內容
# 通過回覆的值,傳參給鬥圖啦api,獲取對應的圖
apiUrl = 'https://www.doutula.com/api/search'
data = {
'mime':2, # 指定jpg格式靜態圖
'page':0,
'keyword':text,
}
r = requests.post(apiUrl, data=data).json() # post請求
imgurl = r.get("data").get("list")[0].get("image_url") # 獲取返回的第一個圖片地址
urllib.request.urlretrieve(imgurl, "doutu.jpg") # 保存圖片名爲doutu.jpg的本地圖片
# 微信機器人
@itchat.msg_register(itchat.content.TEXT, isFriendChat = True)
def reply_msg(msg):
itchat.send_image(fileDir = "doutu.jpg", toUserName = msg['FromUserName']) # 將保存在本地的圖片發送給給你發消息的人
itchat.auto_login(hotReload = True) # 保存微信登錄狀態
itchat.run()
附::手機版運行效果圖:
喜歡的點個贊❤吧!