欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)微信翻譯機器人的方法

 更新時間:2019年08月13日 09:04:32   作者:學(xué)好Python爬蟲  
這篇文章主要介紹了Python實現(xiàn)微信翻譯機器人的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

相信大家在日常學(xué)習(xí)或者是閱讀英文文章的過程中,難免會出現(xiàn)幾個不認識的單詞,或者想快速翻譯某段英文的意思。

今天,利用Python爬蟲等知識,教大家打造一個微信下的翻譯小助手。好吧,開始干活。

先來看看效果如何

發(fā)送要翻譯的內(nèi)容給我們的翻譯小助手,它會自動回復(fù)翻譯好的內(nèi)容。

環(huán)境配置:

Python版本:3.6.0

系統(tǒng)平臺: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é)果

這部分功能我們封裝成一個函數(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是一個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é)在仔細看看代碼注釋。

微信收發(fā)送消息

關(guān)于微信收發(fā)送消息呢,可以看看之前Python打造天氣預(yù)報機器這一篇文章,代碼是直接從那邊稍加修改搬過來的。

那邊是獲取天氣,這邊是獲取翻譯結(jié)果,思路都是一樣的。直接看代碼就可以了:

# 如果對方發(fā)的是文字,則我們給對方回復(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()

我們需要對消息進行匹配分析,以便確定用戶需要的是翻譯功能而不是天氣預(yù)報等功能,所以需要利用re進行匹配一下關(guān)鍵字。

然后調(diào)用translate函數(shù)進行獲取發(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是一個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é)果
# 如果對方發(fā)的是文字,則我們給對方回復(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實現(xiàn)微信翻譯機器人的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python中psutil的介紹與用法

    Python中psutil的介紹與用法

    這篇文章主要給大家介紹了關(guān)于Python中psutil的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python APScheduler執(zhí)行使用方法詳解

    Python APScheduler執(zhí)行使用方法詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python APScheduler執(zhí)行使用方法的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python中return用法案例詳解

    Python中return用法案例詳解

    這篇文章主要介紹了Python中return用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作

    python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作

    這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python實例方法與類方法和靜態(tài)方法介紹與區(qū)別分析

    Python實例方法與類方法和靜態(tài)方法介紹與區(qū)別分析

    在 Python 中,實例方法(instance method),類方法(class method)與靜態(tài)方法(static method)經(jīng)常容易混淆。本文通過代碼例子來說明它們的區(qū)別
    2022-10-10
  • python程序主動退出進程的五種方式

    python程序主動退出進程的五種方式

    對于如何結(jié)束一個Python程序或者用Python操作去結(jié)束一個進程等,Python本身給出了好幾種方法,而這些方式也存在著一些區(qū)別,對相關(guān)的幾種方法看了并實踐了下,同時也記錄下,需要的朋友可以參考下
    2024-02-02
  • 用Python實現(xiàn)協(xié)同過濾的教程

    用Python實現(xiàn)協(xié)同過濾的教程

    這篇文章主要介紹了用Python實現(xiàn)協(xié)同過濾的教程,主要用于從大數(shù)據(jù)中抽取用戶信息偏好等等,需要的朋友可以參考下
    2015-04-04
  • 如何在Python中隱藏和加密密碼示例詳解

    如何在Python中隱藏和加密密碼示例詳解

    Maskpass是一個類似getpass的Python庫,但是具有一些高級功能,比如掩蔽和顯示,下面這篇文章主要給大家介紹了關(guān)于如何在Python中隱藏和加密密碼的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 基于python的selenium兩種文件上傳操作實現(xiàn)詳解

    基于python的selenium兩種文件上傳操作實現(xiàn)詳解

    這篇文章主要介紹了基于python的selenium兩種文件上傳操作實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • python使用struct模塊實現(xiàn)打包/解包二進制數(shù)據(jù)

    python使用struct模塊實現(xiàn)打包/解包二進制數(shù)據(jù)

    因為網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都是二進制字節(jié)流,而?Python?只有字符串可以直接轉(zhuǎn)成字節(jié)流,對于整數(shù)、浮點數(shù)則無能為力了,所以?Python?提供了?struct?模塊來幫我們解決這一點,下面我們就來看看它的用法吧
    2023-09-09

最新評論