Google Translate + Python进行excel内单词的翻译(一)google translate探索

news/2024/7/21 5:58:27 标签: google, google translate, python, excel, 翻译

Google Translate + Python进行excel内单词的翻译

首先打开Google translate的界面:
Google translate
F12
找到包含我们所需要的信息的Request
request
这个request返回的是一个json文件
这个api的地址为:https://translate.google.com/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&source=bh&ssel=0&tsel=0&kc=1&tk=723628.888571&q=translate

param
此处的q的键值就是待翻译的字符串
tk也是一个重要的参数,它的获取比较复杂,但是也是有方法的,此处用python

python">python">import execjs

#js解析得到tk值

class Py4Js():
    def __init__(self):
        self.ctx = execjs.compile("""
        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)

不做详细解释,看了某位大神的优秀操作,但是忘记收藏了,有兴趣可以自己解读代码。


http://www.niftyadmin.cn/n/962024.html

相关文章

ju 单元测试_java单元测试(使用junit)

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。1、概述Junit测试是程序员测试&#xff0c;即所谓白盒测试&#xff0c;因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。J…

一个悲伤的故事~RR-OS的刷机感受

首先&#xff0c;RR-OS是大部分想体验安卓原生的人的第一选择&#xff0c;它提供了非官方自带的个性设置。 现在列出我在使用RR-OS时遇到的一些困难&#xff1a; RR-OS不自带Google框架若恢复出厂后同时刷入包和Google框架&#xff0c;启动后的引导跳过手动刷入Google框架后…

MySQL5.7 切不要乱射 --transaction-write-set-extraction=MURMUR32

今天早上一个朋友找到了我&#xff0c;说他们备份失败了&#xff0c;使用的版本为MySQL 5.7.15 报错信息如下&#xff1a; 123mysqldump: Couldnt execute SAVEPOINT sp: The MySQL server is running with the --transaction-write-set-extraction!OFF option so it cannot …

适配器和装饰器

适配器和装饰器 适配器 适配器充当一个功能转换的部件&#xff0c;它继承了我们想要的(target interface)接口&#xff0c;并使其完成接口的所有功能&#xff0c;但是转化的话需要源类&#xff08;adaptee class&#xff09;的信息或者功能&#xff0c;所有有两种方法&#xf…

性能测试学习笔记-如何管理loadrunner的临时文件

lr默认保存一些乱七八糟的文件到C:\Documents and Settings\wushi\Local Settings\Temp文件夹下&#xff0c;时间长了会占用大量空间。 在每台loadrunner的客户端机器上&#xff0c;都设置了一个lrtemp文件&#xff08;可能是d:\lrtemp&#xff1b;也可能是e:\lrtemp&#xff0…

ios键盘横屏_ios开发 监听键盘frame变化事件获取键盘高度( ios8ios7 横竖屏旋转时需要注意的问题) | 学步园...

监听 UIKeyboardWillChangeFrameNotification 消息时需要注意键盘的高度获取 在 横竖屏的情况下是不同的 正确代码如下设置监听 &#xff1a;[[NSNotificationCenter defaultCenter]addObserver:self selector:selector(keyboardFrameDidChange:) name:UIKeyboardWillChangeF…

大学生的自我救赎:离散数学

命题 命题存在的以及符号化的原因在于推理&#xff0c;所以将事件进行转化。 命题的定义 能判断真假的陈述句。 不满足简单命题的命题 命题的初级阶段组合&#xff1a; 联结词符 合式公式&#xff1a; 不仅可以代表常项也可以代表变项 具有多层层次&#xff0c;所以一个合…

select 语句

如果指定了 SELECT DISTINCT&#xff0c;那么 ORDER BY 子句中的项就必须出现在选择列表中。 select distinct YSBM from DBF_CFYP order by Recn则不行&#xff0c;必须 将ysbm 加入order by 本文转自鹅倌51CTO博客&#xff0c;原文链接&#xff1a; http://blog.51cto.com/ka…