日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python实现谷歌翻译

發(fā)布時(shí)間:2023/12/10 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现谷歌翻译 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

這個(gè)功能是在工作時(shí),上級(jí)有個(gè)需求是讓我將json文件中指定字段的英文翻譯成中文,并且指定要使用谷歌翻譯,理由是翻譯的結(jié)果可能會(huì)比較準(zhǔn)確。

過(guò)程

因?yàn)橹皩戇^(guò)用python實(shí)現(xiàn)有道翻譯,是在ajax中找到它的翻譯接口的,所以我以為谷歌應(yīng)該也差不多,于是我就打開 “開發(fā)者工具”,拼命地尋找它的翻譯接口,果然讓我發(fā)現(xiàn)了,哈哈哈哈~~

然而我發(fā)現(xiàn)我高興地太早了,這TMD是個(gè)啥東西,為啥不是json啊,崩潰!!!

算了,你牛,我放棄~

于是我就面向度娘,尋求幫助,搜索關(guān)鍵詞 “python實(shí)現(xiàn)谷歌翻譯”,哦吼~ 結(jié)果還挺多

哈哈又草率了(欲哭無(wú)淚),隨緣選中一個(gè)后,大致看了一下(好復(fù)雜555~),它們的思路大致是用PyExecJS庫(kù)模擬js代碼獲取結(jié)果,我才不管這些,能用就行,然后一頓ctrl c/ctrl v 代碼到本地后,修改一些數(shù)據(jù),開始運(yùn)行。

接下來(lái)就一頓報(bào)錯(cuò),我就一頓臥槽。好的,沒安裝庫(kù)…安裝不成功,和一些莫名的其他原因。這能忍?于是我決定自己動(dòng)手,豐衣足食,大不了就爬網(wǎng)頁(yè)嘛,然后打開網(wǎng)頁(yè)源代碼,MD又草率了,并沒有需要的內(nèi)容,忘記結(jié)果是用js生成的,唉,怎么辦?只好從最開始的那個(gè)ajax的接口下手了


內(nèi)容里有很多重復(fù)的內(nèi)容并且感覺毫無(wú)規(guī)則…我硬著頭皮嘗試用正則把內(nèi)容提取出來(lái),代碼我就不貼,因?yàn)椤?/p>

我花了好長(zhǎng)好長(zhǎng)時(shí)間,瘋狂改正則表達(dá)式…啊哈!的確可以得出結(jié)果,超開心的~ 但是后面翻譯的過(guò)程發(fā)現(xiàn),這只適合翻譯一句話,多一點(diǎn)都不行,它會(huì)漏掉…頭又炸了!!!

我又放棄了,已經(jīng)束手無(wú)策了…第二天,看到一篇文章,里面寫的是 “ 字符串轉(zhuǎn)為列表”的知識(shí)點(diǎn),然后我靈光一現(xiàn),想到了用正則和列表相結(jié)合,將內(nèi)容提取出來(lái),于是我看到了奧特曼(光)哈哈哈,這次真的可以!!!!不說(shuō)了上代碼

代碼


import requests import json import re import time import pandas as pddef googleTranslate(text):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"]]]'} res = requests.post(url, headers=headers, data=data).textpattern = '\)\]\}\'\s*\d{3,4}\s*\[(.*)\s*' part1 = re.findall(pattern, res)part1_list = json.loads('['+part1[0])[0]if part1_list[2] is None: print(text)return textcontent1 = part1_list[2].replace('\n', '')part2_list = json.loads(content1)[1][0][0][5:][0]s = ''for i in part2_list: s += i[0]# s += i[1][1] print(s)return stext = 'wherein, if the grouping based on the ambient signal data is repeated due to error identification such that more than k groups are produced, the number of groups is then reduced back to k, or lower, in the grouping based on the height data.' print(text) googleTranslate(text)

效果

效果如何?

如何翻譯成其他語(yǔ)言?

當(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ǔ)了

修改data數(shù)據(jù)

翻譯結(jié)果


好了,今天的分享就到這了,2021年第一篇文章,給自己點(diǎn)個(gè)贊,奧里給~

總結(jié)

以上是生活随笔為你收集整理的python实现谷歌翻译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。