Heim  >  Artikel  >  Backend-Entwicklung  >  Erfahren Sie, wie Sie mit Python einen WeChat-Chatbot erstellen

Erfahren Sie, wie Sie mit Python einen WeChat-Chatbot erstellen

不言
不言Original
2018-06-02 15:24:283848Durchsuche

In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie einen WeChat-Chatbot mit Python erstellen. Er hat einen gewissen Referenzwert.

Ich habe kürzlich die WeChat-API recherchiert und eine sehr einfache Lösung gefunden. Zu verwendende Python-Bibliothek: wxpy. Basierend auf itchat verwendet wxpy das Web-WeChat-Kommunikationsprotokoll, um die WeChat-Anmeldung, das Senden und Empfangen von Nachrichten, die Suche nach Freunden, Datenstatistiken und andere Funktionen zu implementieren.

Hier werden wir diese Bibliothek vorstellen und schließlich einen Chatbot implementieren.

Bist du aufgeregt? Freust du dich schon?

Okay, fangen wir mit unserem Hauptthema an.

Vorbereitung

Die Installation ist sehr einfach, von der offiziellen Quelle herunterladen und installieren

pip install -U wxpy

oder von der Douban-Quelle installieren

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

Vorläufige Erkundung des Moduls

Nachdem die Installation abgeschlossen ist, probieren wir einige Grundfunktionen aus

1 Scannen Sie den QR-Code, um sich anzumelden zu WeChat

from wxpy import *
bot = Bot()

Führen Sie das obige Programm aus und ein QR-Code wird angezeigt. Scannen Sie ihn mit dem WeChat Ihres Mobiltelefons, um sich anzumelden.
Aber das oben genannte Programm hat einen Nachteil: Sie müssen den QR-Code jedes Mal scannen, wenn Sie es ausführen. Allerdings bietet wxpy sehr rücksichtsvoll Caching-Optionen, wie unten gezeigt

bot = Bot(cache_path=True)

Auf diese Weise können Sie die Anmeldeinformationen speichern, sodass Sie nicht jedes Mal den QR-Code scannen müssen.

2. Senden Sie eine Nachricht

bot.file_helper.send("hello")

Der file_helper hier ist der Dateiübertragungsassistent von WeChat und Sie können die folgende Nachricht auf dem Mobiltelefon erhalten 🎜>

3. Nachrichten annehmen

Wir implementieren eine Funktion, um automatisch auf Nachrichten zu antworten.

@bot.register()
def print_message(msg): 
 print(msg.text) 
 return msg.text

# 进入Python命令行,让程序保持运行
embed()

Bruder Qiang öffnet seine offizielle Kontoverwaltungsplattform und sendet eine Nachricht an sich selbst im Backend, und er erhält die folgende Nachrichtenantwort

4. Suchen Sie nach Freunden und WeChat-Gruppen

Lassen Sie uns eine Funktion implementieren, um Unternehmensgruppen zu durchsuchen, Chefs zu finden und Chefnachrichten weiterzuleiten

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()

Für Studenten, deren Chefs gerne in der Gruppe schreien, sind das gute Nachrichten, Sie Sie müssen sich keine Sorgen mehr machen, dass Sie wichtige Informationen von Ihrem Chef verpassen ~~


Datenstatistik

Die Freundestatistikfunktion von wxpy ist sehr einfach zu verwenden und kann problemlos verwendet werden Verwendete Statistiken zur geografischen Standortverteilung und Geschlechterverteilung von Freunden.

Im folgenden Code zählt Bruder Qiang die Verteilung seiner Freunde und druckt die 10 Regionen mit der größten Anzahl an Menschen aus.

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]

Die statistischen regionalen Verteilungsdaten sind in der folgenden Tabelle dargestellt

Bruder Qiang ist in Shanghai und die meisten seiner Freunde kommen ebenfalls aus Shanghai Die obige Tabelle gibt die Situation ebenfalls wahrheitsgetreu wieder.

Der Code für die statistische Geschlechterverteilung lautet wie folgt

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

Die Daten zur Geschlechterverteilung werden wie folgt als Diagramm generiert

Das können Sie Sehen Sie, dass unter den Freunden Männer am meisten ausmachen. Wenn Sie viele männliche Freunde haben, wird sich Ihre Frau wohler fühlen Chatbot.

Der Chatbot basiert auf dem Turing-Bot. Turing Robot kann ein Konto registrieren und einen Roboter auf Turing Robot erstellen – dem intelligentesten Robotergehirn im chinesischen Kontext.

# -*- 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()
Führen Sie das obige Programm aus und senden Sie eine Nachricht an sich selbst. Sie können den folgenden Dialog sehen

Der Roboter ist so lustig, dass er nach roten Umschlägen fragt wenn es darauf ankommt, und sogar ich bin ein Freund~

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie mit Python einen WeChat-Chatbot erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn