1. 程式人生 > >Python-qqbot實現QQ群翻譯機器人

Python-qqbot實現QQ群翻譯機器人

 利用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+空格+檔名

四:

效果:

完畢,第一次寫部落格,很多沒有做好的,望諒解哈