Cet article vous apprend principalement étape par étape comment utiliser Python pour créer un chatbot WeChat. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
En recherchant récemment l'API WeChat, j'ai trouvé un outil très simple à utiliser. utilisez la bibliothèque python : wxpy. Basé sur itchat, wxpy utilise le protocole de communication Web WeChat pour implémenter la connexion WeChat, envoyer et recevoir des messages, rechercher des amis, des statistiques de données et d'autres fonctions.
Ici, nous allons présenter cette bibliothèque et enfin implémenter un chatbot.
Es-tu excité ? L'attendez-vous avec impatience ?
Bon, commençons par notre sujet principal.
Préparation
L'installation est très simple, téléchargez et installez depuis la source officielle
pip install -U wxpy
ou installez depuis la source Douban
pip install -U wxpy -i "https://pypi.doubanio.com/simple/"
Exploration préliminaire du module
Une fois l'installation terminée, essayons quelques fonctions de base
1. Scannez le QR. code pour vous connecter à WeChat
from wxpy import * bot = Bot()
Exécutez le programme ci-dessus et un code QR apparaîtra Scannez-le avec WeChat sur votre téléphone mobile pour vous connecter.
Mais le programme ci-dessus présente un inconvénient : vous devez scanner le code QR à chaque fois que vous l'exécutez. Cependant, wxpy fournit très judicieusement les options de mise en cache, comme suit
bot = Bot(cache_path=True)
De cette façon, vous pouvez enregistrer les informations de connexion, afin de ne pas avoir à scanner le code QR à chaque fois.
2. Envoyer un message
bot.file_helper.send("hello")
Le file_helper ici est l'assistant de transfert de fichiers de WeChat. Nous envoyons un message à l'assistant de transfert de fichiers et vous pouvez recevoir le message suivant sur le téléphone mobile<. 🎜>
3. Accepter les messages Nous implémentons une fonction pour répondre automatiquement aux messages.@bot.register() def print_message(msg): print(msg.text) return msg.text # 进入Python命令行,让程序保持运行 embed()
from wxpy import * bot = Bot(cache_path=True) # 定位公司群 company_group = bot.groups().search('公司微信群')[0] # 定位老板 boss = company_group.search('老板大名')[0] # 将老板的消息转发到文件传输助手 @bot.register(company_group) def forward_boss_message(msg): if msg.member == boss: msg.forward(bot.file_helper, prefix='老板发言') # 堵塞线程 embed()
Statistiques des données
La fonction de statistiques d'amis de wxpy est très simple. à utiliser. Vous pouvez facilement compter la répartition géographique et la répartition par sexe de vos amis. Dans le code ci-dessous, frère Qiang compte la répartition de ses amis et imprime les 10 régions avec le plus grand nombre de personnes.from wxpy import * bot = Bot(cache_path=True) friends_stat = bot.friends().stats() friend_loc = [] # 每一个元素是一个二元列表,分别存储地区和人数信息 for province, count in friends_stat["province"].iteritems(): if province != "": friend_loc.append([province, count]) # 对人数倒序排序 friend_loc.sort(key=lambda x: x[1], reverse=True) # 打印人数最多的10个地区 for item in friend_loc[:10]: print item[0], item[1]
for sex, count in friends_stat["sex"].iteritems(): # 1代表MALE, 2代表FEMALE if sex == 1: print "MALE %d" % count elif sex == 2: print "FEMALE %d" % count
Chatbot
Avec la base de la partie d'introduction de la fonction ci-dessus, implémentons un chatbot. Le chatbot est basé sur le bot Turing. Turing Robot peut créer un compte et créer un robot sur Turing Robot - le cerveau robot le plus intelligent du contexte chinois.# -*- coding: utf-8 -*- import json import requests from wxpy import * # 调用图灵机器人API,发送消息并获得机器人的回复 def auto_reply(text): url = "http://www.tuling123.com/openapi/api" api_key = "你的api key" payload = { "key": api_key, "info": text, "userid": "123456" } r = requests.post(url, data=json.dumps(payload)) result = json.loads(r.content) return "[tuling] " + result["text"] bot = Bot(console_qr=True, cache_path=True) @bot.register(mp) def forward_message(msg): return auto_reply(msg.text) embed()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!