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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

调用谷歌翻译进行翻译

發(fā)布時間:2023/12/15 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 调用谷歌翻译进行翻译 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前寫過調用百度翻譯來進行翻譯,今天心血來潮,想著調用一下谷歌翻譯,下面上代碼。

# -*- coding: utf-8 -*-
# @Time    : 18-11-6 上午11:57
# @Author  : Felix Wang

import requests
import execjs  # pip install PyExecJS  # 需要注意, 包的名稱:PyExecJS


class GoogleTranslate(object):
    def __init__(self):
        self.ctx = execjs.compile(  # 下面是一段js代碼,從網(wǎng)頁中分析得到
            """ function TL(a) { var k = ""; var b = 406644; var b1 = 3293161072; var jd = "."; var $b = "+-a^+6"; var Zb = "+-3^+b+-f"; for (var e = [], f = 0, g = 0; g < a.length; g++) { var m = a.charCodeAt(g); 128 > m ? e[f++] = m : (2048 > m ? e[f++] = m >> 6 | 192 : (55296 == (m & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (m = 65536 + ((m & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = m >> 18 | 240, e[f++] = m >> 12 & 63 | 128) : e[f++] = m >> 12 | 224, e[f++] = m >> 6 & 63 | 128), e[f++] = m & 63 | 128) } a = b; for (f = 0; f < e.length; f++) a += e[f], a = RL(a, $b); a = RL(a, Zb); a ^= b1 || 0; 0 > a && (a = (a & 2147483647) + 2147483648); a %= 1E6; return a.toString() + jd + (a ^ b) }; function RL(a, b) { var t = "a"; var Yb = "+"; for (var c = 0; c < b.length - 2; c += 3) { var d = b.charAt(c + 2), d = d >= t ? d.charCodeAt(0) - 87 : Number(d), d = b.charAt(c + 1) == Yb ? a >>> d: a << d; a = b.charAt(c) == Yb ? a + d & 4294967295 : a ^ d } return a } """)

    def getTk(self, text):  # 計算谷歌的算法值
        return self.ctx.call("TL", text)

    def translate(self, content, en_to_zn=True):
        """
        :param content: 翻譯內容
        :param en_to_zn: 是否由英文翻譯成中文,默認為True
        :return: 
        """
        if len(content) > 4891:
            print("翻譯的長度超過限制!!!")
            return
        tk = self.getTk(content)
        param = {'tk': tk, 'q': content}
        url_zh_to_en = 'https://translate.google.cn/translate_a/single?client=t&sl=zh-CN&tl=en&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=1&ssel=6&tsel=3&kc=1'
        url_en_to_zh = "https://translate.google.cn/translate_a/single?client=t&sl=en &tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss &dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2"

        # 返回的結果為Json,解析為一個嵌套列表
        result = requests.get(url_en_to_zh if en_to_zn else url_zh_to_en, params=param)
        results = result.json()[0]
        data = []
        for test in results:
            if test[0]:
                data.append(test[0])
        return '
'.join(data), data


if __name__ == "__main__":
    tran = GoogleTranslate()  # 實例化谷歌翻譯對象
    content = """Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!"""
    # content = '你好啊,我今天去哪吃飯?你明天去哪?'
    data = tran.translate(content, en_to_zn=True)
    print(data[0])

總結

以上是生活随笔為你收集整理的调用谷歌翻译进行翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

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