相信大家在日常學習或者是閱讀英文文章的過程中,難免會出現幾個不認識的單詞,或者想快速翻譯某段英文的意思。
今天,利用Python爬蟲等知識,教大家打造一個微信下的翻譯小助手。好吧,開始干活。
先來看看效果如何
發送要翻譯的內容給我們的翻譯小助手,它會自動回復翻譯好的內容。
環境配置:
Python版本:3.6.0
系統平臺:Windows 10 X64
IDE:pycharm
相關模塊:
json模塊
itchat模塊
re模塊
request模塊
parse模塊
以及一些Python自帶的模塊。
根據內容獲取翻譯的結果
這里使用的是有道翻譯API接口。大致思路說一下:
1. 創建連接接口 2. 創建要提交的數據 3. 將數據轉化為服務器可以處理的信息并提交
4. 返回翻譯結果
這部分功能我們封裝成一個函數,參數是需要發送的微信用戶名,需要翻譯的內容。
數據格式我們是以json的格式發送過去的,然后獲取的也是json的數據格式,該過程需要做些轉換。
還需要把數據轉換成utf-8的編碼,回來的數據也需要做相應的轉換和解析,具體看下面代碼:
def translate(userName, content): req_url = 'http://fanyi.youdao.com/translate' # 創建連接接口 # 創建要提交的數據 Form_Date = {} Form_Date['i'] = content # 輸入要翻譯的內容 Form_Date['doctype'] = 'json' data = parse.urlencode(Form_Date).encode('utf-8') # 數據轉換 response = request.urlopen(req_url, data) # 提交數據并解析 html = response.read().decode('utf-8') # 服務器返回結果讀取 # 可以看出html是一個json格式 translate_results = json.loads(html) # 以json格式載入 translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調取 print(translate_results) # 輸出結果 itchat.send(translate_results, toUserName=userName) #發送翻譯結果
不了解的同學在仔細看看代碼注釋。
微信收發送消息
關于微信收發送消息呢,可以看看之前Python打造天氣預報機器這一篇文章,代碼是直接從那邊稍加修改搬過來的。
那邊是獲取天氣,這邊是獲取翻譯結果,思路都是一樣的。直接看代碼就可以了:
# 如果對方發的是文字,則我們給對方回復以下的東西 @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()
我們需要對消息進行匹配分析,以便確定用戶需要的是翻譯功能而不是天氣預報等功能,所以需要利用re進行匹配一下關鍵字。
然后調用translate函數進行獲取發送。
完整代碼:
# 有道翻譯結果獲取 ''' 大致思路如下 1. 創建連接接口 2. 創建要提交的數據 . 將數據轉化為服務器可以處理的信息并提交 . 返回翻譯結果 ''' # 引入python中內置的包json. 用來解析和生成json數據的 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' # 創建連接接口 # 創建要提交的數據 Form_Date = {} Form_Date['i'] = content # 輸入要翻譯的內容 Form_Date['doctype'] = 'json' data = parse.urlencode(Form_Date).encode('utf-8') # 數據轉換 response = request.urlopen(req_url, data) # 提交數據并解析 html = response.read().decode('utf-8') # 服務器返回結果讀取 # 可以看出html是一個json格式 translate_results = json.loads(html) # 以json格式載入 translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式調取 print(translate_results) # 輸出結果 itchat.send(translate_results, toUserName=userName) #發送翻譯結果 # 如果對方發的是文字,則我們給對方回復以下的東西 @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()
總結
以上所述是小編給大家介紹的Python實現微信翻譯機器人的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
