Python-qqbot實現QQ群翻譯機器人
阿新 • • 發佈:2018-12-22
利用qqbot庫實現QQ群自動翻譯機器人:
準備工作:
先安裝qqbot庫:
利用翻譯網站:http://fy.iciba.com/ 這個網址的線上翻譯的請求頭最簡潔明瞭,語種轉換上也方便,適合後期改動。谷歌翻譯和百度翻譯之類的較為複雜,有道翻譯的在語種轉換上老是出錯。
一:
開啟網址,按F12進入審查:
隨便輸入點兒文字,選擇好翻譯型別(這裡我用的是中日互譯),然後點選翻譯,訊息頭中有這次翻譯請求傳送的地址,在XHR中會有這次翻譯的傳送的請求頭:
選擇響應,會有翻譯網址收到傳送的引數返回的資料,是json形式的,其中out裡的是我們這次翻譯的結果:
這些資料之後都會用到
二:
實現翻譯,引入庫:
import requests
模仿中→日翻譯的請求資料:
data2 = {
'f': 'zh',
't': 'ja',
'w': '這裡是翻譯內容'
}
然後將它傳送給訊息頭中的地址:
ur2 = 'http://fy.iciba.com/ajax.php?a=fy'
url21 = requests.post(ur2, data2)
這時候我們會得到一個json格式的響應頭,然後在網上找個轉換json的網址,轉換一下格式,可以看到在content中的out裡就是這次翻譯的結果,將它等於result:
res2 = url21.json()
result = res2['content']['out']
同理可以寫出日→中的程式碼:
data2 = {
'f': 'zh',
't': 'ja',
'w': '翻譯內容'
}
ur2 = 'http://fy.iciba.com/ajax.php?a=fy'
url21 = requests.post(ur2, data2)
res2 = url21.json()
result = res2['content']['out']
三:
開始寫qqbot收叢集裡訊息,並處理然後傳送,開啟cmd命令提示符啟動qqbot,然後掃碼登陸小號:
這樣就啟動了qqbot, 在C:\Users\Administrator\.qqbot-tmp\plugins這個目錄下,建立一個py檔案,編譯它的外掛(這個目錄可以直接載入和解除安裝外掛,最為方便)
def onQQMessage(bot, contact, member, content):
if content == '-hello':
bot.SendTo(contact, '你好,我是QQ機器人')
elif content == '-stop':
bot.SendTo(contact, 'QQ機器人已關閉')
bot.Stop()
使用一個if函式,判斷是否有人@自己,傳送的訊息是想翻譯日文還是轉換中文:
if '[@ME]' in content:
if '[@ME]' and '翻譯' in content:
#這裡進行日文翻譯
else:
#這裡進行中文轉換日文
將第二步中的程式碼進行結合:
# -*- coding: utf-8 -*-
# @Time : 2018/10/25 18:21
# @作者 : 向著遙遠的天穹
# @檔案 : crawl_App.py
# @專案 : PyCharm
# @郵箱 :[email protected]
# -*- coding: utf-8 -*-
import requests
def onQQMessage(bot, contact, member, content):
if '[@ME]' in content:
if '[@ME]' and '翻譯' in content:
data1 = {
'f': 'ja',
't': 'zh',
'w': content[9:]
}
url1 = 'http://fy.iciba.com/ajax.php?a=fy'
url11 = requests.post(url1, data1)
res1 = url11.json()
result = res1['content']['out']
else:
data2 = {
'f': 'zh',
't': 'ja',
'w': content[5:]
}
ur2 = 'http://fy.iciba.com/ajax.php?a=fy'
url21 = requests.post(ur2, data2)
res2 = url21.json()
result = res2['content']['out']
bot.SendTo(contact, str(result))
然後開啟一個新的cmd命令控制符為qqbot載入外掛:
載入外掛:qq plug+空格+檔名(不用帶.py)
解除安裝外掛:qq unplug+空格+檔名
四:
效果:
完畢,第一次寫部落格,很多沒有做好的,望諒解哈