Maison >développement back-end >Tutoriel Python >Apprenez à créer un chatbot WeChat en utilisant Python

Apprenez à créer un chatbot WeChat en utilisant Python

不言
不言original
2018-06-02 15:24:283931parcourir

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()
Frère Qiang ouvre sa plateforme officielle de gestion de compte, s'envoie un message dans le backend et vous pouvez recevoir la réponse au message suivant

4. Rechercher des amis et des groupes WeChat

Implémentons une fonction pour rechercher des groupes d'entreprises, localiser les patrons et transmettre les messages des patrons

from wxpy import *

bot = Bot(cache_path=True)

# 定位公司群
company_group = bot.groups().search(&#39;公司微信群&#39;)[0]

# 定位老板

boss = company_group.search(&#39;老板大名&#39;)[0]

# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg): 
 if msg.member == boss:  
 msg.forward(bot.file_helper, prefix=&#39;老板发言&#39;)

# 堵塞线程
embed()
Pour les étudiants dont les patrons aiment crier dans le groupe, c'est bonne nouvelle. Vous n'avez plus à craindre de manquer des informations importantes de votre patron ~~


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]
Les données statistiques de répartition régionale sont dessinées dans le tableau ci-dessous

Frère Qiang est à Shanghai, et la plupart de ses amis sont également de Shanghai Le graphique ci-dessus reflète également avec précision cette situation.

Le code pour la répartition statistique par sexe est le suivant

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
Générer un graphique des données de répartition par sexe comme suit

Vous pouvez voir les hommes parmi vos amis constituent la majorité. Si vous avez beaucoup d'amis masculins, votre femme se sentira plus à l'aise, eh bien~~

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()
Exécutez le programme ci-dessus et envoyez-vous un message, vous pouvez voir le dialogue suivant

Le robot est tellement drôle, je veux du rouge enveloppes quand je monte. Il me considère même comme mon petit ami~

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn