您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)python中怎么實(shí)現(xiàn)一個(gè)谷歌翻譯功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
import requests
import json
import re
import time
def googleTranslate(text):
"""
用谷歌翻譯內(nèi)容,返回翻譯結(jié)果
params: text 翻譯的內(nèi)容
return: str s 翻譯結(jié)果
"""
url = 'https://translate.google.cn/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=-2984828793698248690&bl=boq_translate-webserver_20201221.17_p0&hl=zh-CN&soc-app=1&soc-platform=1&soc-device=1&_reqid=5445720&rt=c'
headers = {
'origin': 'https://translate.google.cn',
'referer': 'https://translate.google.cn/',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36',
'x-client-data': 'CIW2yQEIpbbJAQjEtskBCKmdygEIrMfKAQj2x8oBCPfHygEItMvKAQihz8oBCNzVygEIi5nLAQjBnMsB',
'Decoded':'message ClientVariations {repeated int32 variation_id = [3300101, 3300133, 3300164, 3313321, 3318700, 3318774, 3318775, 3319220, 3319713, 3320540, 3329163, 3329601];}',
'x-same-domain': '1'
} # 以防萬(wàn)一,我全加上了,可能有些不寫(xiě)也可以
data = {
'f.req': f'[[["MkEWBc","[[\\"{text}\\",\\"auto\\",\\"zh-CN\\",true],[null]]",null,"generic"]]]'
} # text則是你要翻譯的內(nèi)容
res = requests.post(url, headers=headers, data=data).text # 獲取返回的結(jié)果
pattern = '\)\]\}\'\s*\d{3,4}\s*\[(.*)\s*' # 提取需要的部分
part1 = re.findall(pattern, res)
part1_list = json.loads(part1[0]) # 字符串轉(zhuǎn)列表
if part1_list[2] is None: # 如果返回的結(jié)果中沒(méi)有需要的數(shù)據(jù),則返回輸入的內(nèi)容
print(text)
return text
content1 = part1_list[2].replace('\n', '')
part2_list = json.loads(content1)[1][0][0][5:][0] # 過(guò)濾結(jié)果中重復(fù)的部分
s = ''
for i in part2_list: # 遍歷結(jié)果中的每一句話,并進(jìn)行拼接
s += i[0]
print(s)
return s
text = 'friend. Let us look back on 2020 and look forward to 2021.'
print(text)
googleTranslate(text)
效果如何?
當(dāng)然,這僅僅是實(shí)現(xiàn)了任何語(yǔ)言轉(zhuǎn)為中文,要轉(zhuǎn)為別的語(yǔ)言,你可以通過(guò)執(zhí)行js,獲取所有語(yǔ)言對(duì)應(yīng)的英文字母,以字典的形式存儲(chǔ),最后保存為json文件
然后執(zhí)行程序時(shí),動(dòng)態(tài)地輸入翻譯后的語(yǔ)言,去json文件中獲取對(duì)應(yīng)的英文代表,然后替換data中的"zh-CN"即可。比如我想翻譯成日語(yǔ),我就將“zh-CN”替換成 “ja”,這樣,翻譯出來(lái)的結(jié)果就是日語(yǔ)了
看完上述內(nèi)容,你們對(duì)python中怎么實(shí)現(xiàn)一個(gè)谷歌翻譯功能有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。