您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關python中怎么實現一個谷歌翻譯功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
import requests
import json
import re
import time
def googleTranslate(text):
"""
用谷歌翻譯內容,返回翻譯結果
params: text 翻譯的內容
return: str s 翻譯結果
"""
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'
} # 以防萬一,我全加上了,可能有些不寫也可以
data = {
'f.req': f'[[["MkEWBc","[[\\"{text}\\",\\"auto\\",\\"zh-CN\\",true],[null]]",null,"generic"]]]'
} # text則是你要翻譯的內容
res = requests.post(url, headers=headers, data=data).text # 獲取返回的結果
pattern = '\)\]\}\'\s*\d{3,4}\s*\[(.*)\s*' # 提取需要的部分
part1 = re.findall(pattern, res)
part1_list = json.loads(part1[0]) # 字符串轉列表
if part1_list[2] is None: # 如果返回的結果中沒有需要的數據,則返回輸入的內容
print(text)
return text
content1 = part1_list[2].replace('\n', '')
part2_list = json.loads(content1)[1][0][0][5:][0] # 過濾結果中重復的部分
s = ''
for i in part2_list: # 遍歷結果中的每一句話,并進行拼接
s += i[0]
print(s)
return s
text = 'friend. Let us look back on 2020 and look forward to 2021.'
print(text)
googleTranslate(text)
效果如何?
當然,這僅僅是實現了任何語言轉為中文,要轉為別的語言,你可以通過執行js,獲取所有語言對應的英文字母,以字典的形式存儲,最后保存為json文件
然后執行程序時,動態地輸入翻譯后的語言,去json文件中獲取對應的英文代表,然后替換data中的"zh-CN"即可。比如我想翻譯成日語,我就將“zh-CN”替換成 “ja”,這樣,翻譯出來的結果就是日語了
看完上述內容,你們對python中怎么實現一個谷歌翻譯功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。