天天看點

Python 技術篇-20行代碼實作微信機器人鬥圖功能執行個體示範!鬥圖啦官網API調用方法

話不多說,看效果圖:

Python 技術篇-20行代碼實作微信機器人鬥圖功能執行個體示範!鬥圖啦官網API調用方法

先說下原理:

微信接收到你說的話,發給機器人來回複,用回複的話傳參給鬥圖網,然後獲得鬥圖網傳回的圖檔,儲存後把圖檔再發給跟你鬥圖的人。

鬥圖啦官網API調用文檔

鬥圖啦官網 菜單欄的 站長開發→鬥圖啦API 即可看到 api 接口調用方式。
Python 技術篇-20行代碼實作微信機器人鬥圖功能執行個體示範!鬥圖啦官網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()      

附: 手機版運作效果圖。

Python 技術篇-20行代碼實作微信機器人鬥圖功能執行個體示範!鬥圖啦官網API調用方法

喜歡的點個贊❤吧!