Python實(shí)現(xiàn)微信翻譯機(jī)器人的方法
相信大家在日常學(xué)習(xí)或者是閱讀英文文章的過程中,難免會(huì)出現(xiàn)幾個(gè)不認(rèn)識(shí)的單詞,或者想快速翻譯某段英文的意思。
今天,利用Python爬蟲等知識(shí),教大家打造一個(gè)微信下的翻譯小助手。好吧,開始干活。
先來看看效果如何
發(fā)送要翻譯的內(nèi)容給我們的翻譯小助手,它會(huì)自動(dòng)回復(fù)翻譯好的內(nèi)容。

環(huán)境配置:
Python版本:3.6.0
系統(tǒng)平臺(tái):Windows 10 X64
IDE:pycharm
相關(guān)模塊:
json模塊
itchat模塊
re模塊
request模塊
parse模塊
以及一些Python自帶的模塊。
根據(jù)內(nèi)容獲取翻譯的結(jié)果
這里使用的是有道翻譯API接口。大致思路說一下:
1. 創(chuàng)建連接接口 2. 創(chuàng)建要提交的數(shù)據(jù) 3. 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交
4. 返回翻譯結(jié)果
這部分功能我們封裝成一個(gè)函數(shù),參數(shù)是需要發(fā)送的微信用戶名,需要翻譯的內(nèi)容。
數(shù)據(jù)格式我們是以json的格式發(fā)送過去的,然后獲取的也是json的數(shù)據(jù)格式,該過程需要做些轉(zhuǎn)換。
還需要把數(shù)據(jù)轉(zhuǎn)換成utf-8的編碼,回來的數(shù)據(jù)也需要做相應(yīng)的轉(zhuǎn)換和解析,具體看下面代碼:
def translate(userName, content):
req_url = 'http://fanyi.youdao.com/translate' # 創(chuàng)建連接接口
# 創(chuàng)建要提交的數(shù)據(jù)
Form_Date = {}
Form_Date['i'] = content # 輸入要翻譯的內(nèi)容
Form_Date['doctype'] = 'json'
data = parse.urlencode(Form_Date).encode('utf-8') # 數(shù)據(jù)轉(zhuǎn)換
response = request.urlopen(req_url, data) # 提交數(shù)據(jù)并解析
html = response.read().decode('utf-8') # 服務(wù)器返回結(jié)果讀取
# 可以看出html是一個(gè)json格式
translate_results = json.loads(html) # 以json格式載入
translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調(diào)取
print(translate_results) # 輸出結(jié)果
itchat.send(translate_results, toUserName=userName) #發(fā)送翻譯結(jié)果
不了解的同學(xué)在仔細(xì)看看代碼注釋。
微信收發(fā)送消息
關(guān)于微信收發(fā)送消息呢,可以看看之前Python打造天氣預(yù)報(bào)機(jī)器這一篇文章,代碼是直接從那邊稍加修改搬過來的。
那邊是獲取天氣,這邊是獲取翻譯結(jié)果,思路都是一樣的。直接看代碼就可以了:
# 如果對(duì)方發(fā)的是文字,則我們給對(duì)方回復(fù)以下的東西
@itchat.msg_register([TEXT])
def text_reply(msg):
match = re.search('翻譯',msg['Text'])
if match:
content = msg['Text'][msg['Text'].find("+")+1:]
translate(msg['FromUserName'], content)
itchat.auto_login()
itchat.run()
我們需要對(duì)消息進(jìn)行匹配分析,以便確定用戶需要的是翻譯功能而不是天氣預(yù)報(bào)等功能,所以需要利用re進(jìn)行匹配一下關(guān)鍵字。
然后調(diào)用translate函數(shù)進(jìn)行獲取發(fā)送。
完整代碼:
# 有道翻譯結(jié)果獲取
'''
大致思路如下
1. 創(chuàng)建連接接口
2. 創(chuàng)建要提交的數(shù)據(jù)
. 將數(shù)據(jù)轉(zhuǎn)化為服務(wù)器可以處理的信息并提交
. 返回翻譯結(jié)果
'''
# 引入python中內(nèi)置的包json. 用來解析和生成json數(shù)據(jù)的
import json
import itchat
import re
from itchat.content import *
from urllib import request, parse
def translate(userName, content):
req_url = 'http://fanyi.youdao.com/translate' # 創(chuàng)建連接接口
# 創(chuàng)建要提交的數(shù)據(jù)
Form_Date = {}
Form_Date['i'] = content # 輸入要翻譯的內(nèi)容
Form_Date['doctype'] = 'json'
data = parse.urlencode(Form_Date).encode('utf-8') # 數(shù)據(jù)轉(zhuǎn)換
response = request.urlopen(req_url, data) # 提交數(shù)據(jù)并解析
html = response.read().decode('utf-8') # 服務(wù)器返回結(jié)果讀取
# 可以看出html是一個(gè)json格式
translate_results = json.loads(html) # 以json格式載入
translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調(diào)取
print(translate_results) # 輸出結(jié)果
itchat.send(translate_results, toUserName=userName) #發(fā)送翻譯結(jié)果
# 如果對(duì)方發(fā)的是文字,則我們給對(duì)方回復(fù)以下的東西
@itchat.msg_register([TEXT])
def text_reply(msg):
match = re.search('翻譯',msg['Text'])
if match:
content = msg['Text'][msg['Text'].find("+")+1:]
translate(msg['FromUserName'], content)
itchat.auto_login()
itchat.run()
總結(jié)
以上所述是小編給大家介紹的Python實(shí)現(xiàn)微信翻譯機(jī)器人的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- Python實(shí)現(xiàn)企業(yè)微信機(jī)器人每天定時(shí)發(fā)消息實(shí)例
- Python調(diào)用釘釘自定義機(jī)器人的實(shí)現(xiàn)
- Python使用微信接入圖靈機(jī)器人過程解析
- 基于python的itchat庫實(shí)現(xiàn)微信聊天機(jī)器人(推薦)
- python實(shí)現(xiàn)機(jī)器人卡牌
- Python實(shí)現(xiàn)微信機(jī)器人的方法
- Python3從零開始搭建一個(gè)語音對(duì)話機(jī)器人的實(shí)現(xiàn)
- 基于Python的微信機(jī)器人開發(fā) 微信登錄和獲取好友列表實(shí)現(xiàn)解析
- Python qqbot 實(shí)現(xiàn)qq機(jī)器人的示例代碼
- python實(shí)現(xiàn)微信自動(dòng)回復(fù)機(jī)器人功能
- 如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群
- Python QQBot庫的QQ聊天機(jī)器人
- 使用python接入微信聊天機(jī)器人
- itchat-python搭建微信機(jī)器人(附示例)
- python實(shí)現(xiàn)微信機(jī)器人: 登錄微信、消息接收、自動(dòng)回復(fù)功能
- 手把手教你使用Python創(chuàng)建微信機(jī)器人
- python控制nao機(jī)器人身體動(dòng)作實(shí)例詳解
- Python開發(fā)企業(yè)微信機(jī)器人每天定時(shí)發(fā)消息實(shí)例
相關(guān)文章
Python APScheduler執(zhí)行使用方法詳解
在本篇文章里小編給大家整理的是一篇關(guān)于Python APScheduler執(zhí)行使用方法的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2020-12-12
python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Python實(shí)例方法與類方法和靜態(tài)方法介紹與區(qū)別分析
在 Python 中,實(shí)例方法(instance method),類方法(class method)與靜態(tài)方法(static method)經(jīng)常容易混淆。本文通過代碼例子來說明它們的區(qū)別2022-10-10
python程序主動(dòng)退出進(jìn)程的五種方式
對(duì)于如何結(jié)束一個(gè)Python程序或者用Python操作去結(jié)束一個(gè)進(jìn)程等,Python本身給出了好幾種方法,而這些方式也存在著一些區(qū)別,對(duì)相關(guān)的幾種方法看了并實(shí)踐了下,同時(shí)也記錄下,需要的朋友可以參考下2024-02-02
用Python實(shí)現(xiàn)協(xié)同過濾的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)協(xié)同過濾的教程,主要用于從大數(shù)據(jù)中抽取用戶信息偏好等等,需要的朋友可以參考下2015-04-04
基于python的selenium兩種文件上傳操作實(shí)現(xiàn)詳解
這篇文章主要介紹了基于python的selenium兩種文件上傳操作實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
python使用struct模塊實(shí)現(xiàn)打包/解包二進(jìn)制數(shù)據(jù)
因?yàn)榫W(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都是二進(jìn)制字節(jié)流,而?Python?只有字符串可以直接轉(zhuǎn)成字節(jié)流,對(duì)于整數(shù)、浮點(diǎn)數(shù)則無能為力了,所以?Python?提供了?struct?模塊來幫我們解決這一點(diǎn),下面我們就來看看它的用法吧2023-09-09

