首页 > 其他分享 >有道翻译

有道翻译

时间:2023-09-18 17:24:50浏览次数:33  
标签:翻译 有道 youdao js import sign md5


import time
import hashlib
import requests

import subprocess
from functools import partial

subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
#解决调用js时报错
import execjs


def spide_youdao(key):
    session = requests.session()
    session.get(url="https://fanyi.youdao.com/")
    params = {
        'i': key,
        'from': 'auto',
        'domain': 0,
        'dictResult': 'true',
        'keyid': 'webfanyi',
        'sign': '',
        'client': 'fanyideskweb',
        'product': 'webfanyi',
        'appVersion': '1.0.0',
        'vendor': 'web',
        'pointParam': 'client,mysticTime,product',
        'mysticTime': 1695002145650,
        'keyfrom': 'fanyi.web'
    }
    headers = {
        "User-Agent":
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
        "Content-Type": "application/x-www-form-urlencoded",
        "Referer": "https://fanyi.youdao.com/"
    }
    t = str(int(time.time() * 1000))
    s = f"client=fanyideskweb&mysticTime={t}&product=webfanyi&key=fsdsogkndfokasodnaso"
    md5 = hashlib.md5()
    md5.update(s.encode())
    sign = md5.hexdigest()
    params['sign'] = sign
    params['mysticTime'] = t
    resp = session.post(url="https://dict.youdao.com/webtranslate", data=params, headers=headers)

    with open('sign.js', "r", encoding="utf-8") as f:
        data = f.read()
    js = execjs.compile(data)
    return js.call("s", resp.text)

对应 sign.js 中的代码

const crypto = require('crypto');

function g(e) {
    return crypto.createHash("md5").update(e).digest()
}

function s(t) {

    let o = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl'
    let n = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4'

    const a = Buffer.alloc(16, g(o))
        , c = Buffer.alloc(16, g(n))
        , i = crypto.createDecipheriv("aes-128-cbc", a, c);
    let s = i.update(t, "base64", "utf-8");
    return s += i.final("utf-8")

}

测试结果如下:

print(spide_youdao("有道翻译"))
{"code":0,"dictResult":{"ce":{"word":{"trs":[{"voice":"Youdao+Translator&type=2","#text":"Youdao Translator","#tran":"有道翻译,有道翻译官;"}],"return-phrase":"有道翻译"}}},"translateResult":[[{"tgt":"Youdao Translation","src":"有道翻译","srcPronounce":"yŏu dào fānyì"}]],"type":"zh-CHS2en"}

标签:翻译,有道,youdao,js,import,sign,md5
From: https://www.cnblogs.com/xchuan/p/17712495.html

相关文章

  • 1136:密码翻译
    1136:密码翻译时间限制:1000ms      内存限制:65536KB提交数:68202   通过数:29094【题目描述】在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一......
  • 机器翻译与数据集
    importosimporttorchfromd2limporttorchasd2l#@saved2l.DATA_HUB['fra-eng']=(d2l.DATA_URL+'fra-eng.zip','94646ad1522d915e7b0f9296181140edcf86a4f5')#下载数据集#@savedefread_data_nmt(......
  • 编辑解释程序翻译阶段
          ......
  • 剑指 Offer 46. 把数字翻译成字符串
    题目链接:剑指Offer46.把数字翻译成字符串题目描述:解法思路:代码://dp[i]=dp[i-1]+dp[i-2]//dp[i]表示长度为i的数字,翻译成字符串有多少种functranslateNum(numint)int{s:=strconv.Itoa(num)n:=len(s)dp:=make([]int,n+1)dp[0]=1......
  • Pot(划词翻译) v2.0 官方版
    概述Pot是一款支持Windows、macOS、Linux的划词翻译软件,拥有DeepL、彩云小译、OpenAI等7家翻译引擎,可以整合Anki与欧陆词典的生词本,支持以SnipDo(Windows)、PopClip(MacOS)、Starry(Linux)插件的方式运行,目前最新版本2.0软件特色划词翻译:选中需要翻译的文本之后,按下......
  • 乌班图安装有道翻译
    https://fanyi.youdao.com/download-multi?keyfrom=fanyiweb_navigation下载乌班图版本sudodpkg-iyoudao-dict_6.0.0-ubuntu-amd64.deb提示安装错误,自动安装依赖sudoaptinstall-f继续上一步sudodpkg-iyoudao-dict_6.0.0-ubuntu-amd64.deb启动youdao-dict&......
  • js实现html页面翻译
    引入js库 <scriptsrc="https://res.zvo.cn/translate/translate.js"></script> 在页面最底部加入js代码//translate.ignore.tag.push('span');//翻译时追加上自己想指定忽略的tag标签,凡是在这里面的,都不进行翻译。//translate.ignore.class.push('test'); //翻译时指定......
  • 【论文翻译】线图、着色与色数近似
    前言在港中文的暑研快结束的时候,由于大家快没事干了,一个本地的同学就给我分享了一个简单但不失趣味的图论定理,于是记在这里。记号与约定除特殊约定外,下文中所有变量均取正整数。对于图\(G\),称\(V_G,E_G\)为其点集和边集。在上下文明了的情况下,下标\(G\)会被忽略。为了......
  • python中实现RNA序列的翻译
     001、利用循环结构实现[root@PC1test01]#lsa.fatest.py[root@PC1test01]#cata.fa##测试RNA序列AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA[root@PC1test01]#cattest.py##翻译程序#!/usr/bin/envpython#-*-coding:utf......
  • 隆中对对照翻译:
    隆中对对照翻译: 亮躬耕陇亩,好为《梁父吟》。身高八尺,每自比于管仲、乐毅,时人莫之许也。惟博陵崔州平、颍川徐庶元直与亮友善,谓为信然。诸葛亮亲自耕种田地,喜爱吟唱《梁父吟》。他身高八尺,常常把自己与管仲、乐毅相比,当时的人没有谁承认这一点。只有博陵崔州平,颖川的徐......