102python调用js文件

安装 PyExecJS2, PyExecJS一代已经不更新了!
调用之前,需要安装node,python调用js需要node环境

  • pip install PyExecJS2
 ctx = execjs.compile(open('Other/学习/10有道.js', 'r', encoding='utf-8').read())
 signs = ctx.call('datas', response)  # 如果有多个参数,打个逗号加下一个即可
# 某道

py
import requests
import subprocess
import json
from functools import partial
import hashlib
import time
subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
import execjs
times=str(int(time.time() * 1000))



def get_info():
    data="client=fanyideskweb&mysticTime={}&product=webfanyi&key=fsdsogkndfokasodnaso".format(times)
    sign=hashlib.md5(data.encode(encoding='utf-8')).hexdigest()
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57',
        "Referer": "https://fanyi.youdao.com/index.html"
    }
    cookies = {
        "OUTFOX_SEARCH_USER_ID": "-2094880112@10.108.162.135",
        "OUTFOX_SEARCH_USER_ID_NCOO": "86107500.53660281"
    }
    url = "https://dict.youdao.com/webtranslate"
    while True:
        word = input('请输入翻译内容:')
        data = {
            "i": f"{word}",
            "from": "auto",
            "to": "",
            "dictResult": "true",
            "keyid": "webfanyi",
            "sign": sign,
            "client": "fanyideskweb",
            "product": "webfanyi",
            "appVersion": "1.0.0",
            "vendor": "web",
            "pointParam": "client,mysticTime,product",
            "mysticTime": times,
            "keyfrom": "fanyi.web"
        }
        response = requests.post(url=url, headers=headers, cookies=cookies,data=data).text
        ctx = execjs.compile(open('Other/学习/10有道.js', 'r', encoding='utf-8').read())
        signs = ctx.call('datas', response)
        text = json.loads(signs)
        try:
            print(text['dictResult']['ce']['word']['trs'][0]['#text'])
        except:
            print(text['translateResult'][0][0]['tgt'])


def main():
    get_info()

if __name__ == '__main__':
    main()

// sign
const crypto=require('crypto')
function p(e) {
    return crypto.createHash("md5").update(e.toString()).digest("hex")
}
const time = (new Date).getTime()
function sign(e, t) {
    return p(`client=${"fanyideskweb"}&mysticTime=${time}&product=${"webfanyi"}&key=${"fsdsogkndfokasodnaso"}`)
}
console.log(sign("fsdsogkndfokasodnaso"))



// 响应
const o = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl';
const n = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4';
function datas(t){
        const a = Buffer.alloc(16, crypto.createHash('md5').update(o).digest())
      , r = Buffer.alloc(16, crypto.createHash('md5').update(n).digest())
      , i = crypto.createDecipheriv("aes-128-cbc", a, r);
    let s = i.update(t, "base64", "utf-8");
    return s += i.final("utf-8"),
    s
}
text='Z21kD9ZK1ke6ugku2ccWu4n6eLnvoDT0YgGi0y3g-v0B9sYqg8L9D6UERNozYOHqnYdl2efZNyM6Trc_xS-zKtfTK4hb6JP8XwCzNh0avc8qItQUiIU_4wKKXJlIpvMvfKvJaaZzaX6VEtpkr2FdkfoT_Jgbm2GRSVj3r40autIdlImENG8hC0ZH4ww7utwuTt3Oo_ZpXg0BSq9wePSAB75-ChkiGKF9HTIPeCl2bl84SBD1XDfFCZpkKQhecYSs0JLoXOqP2ltavxRrg58Hp1q5uIgZZ_Oo2-Jmd-t1r4es40drcAq5bjmS62M2VJF8D6ojtOh9JTfNwgzD3CxYn-Pd7-TgHMyNEJEkFXTAyxzpjlFqtrCYDE3SZUYlENkqsL8Wrra1hM-1n TfiB-BLcWAdRBynNpP5_54aq_-GBsq8bB_9yEX5ovzDB4_Ry_spVVuUnb39iplMHCdCnjOD3ngiIDbl9SUz-9n pjBX05ZYRdPmFPAl424qdoaxeVqnVoH8jQFPZVqaHMzu4mJg0SICDWFH7GP1zqGRbXd3ESjT_iBInl3gICt2XVuhh_nubcELkTEC6xbqEDRQkPUNMpzXJHjcvsLHtcmSW0S9F0445ho9kT2qZYdMBC3Fs0OaHpUtFu77gZpQn7sGiqh8VliXIcUtfvvop-1 c-Vu5QjfUbLn2-s5POR9fGYG6rt6ioe_PGmwWj-Cc00zUM7FybfarKTr4D3Rk57R72qpXN4Ja86ZsCAMmDG-m5z31RQh_V7echJ8Kna3Go3yWKCK4vtSwOWrFhiS5RTz6EkrGc3SkFKbb5vp8Wop_84myBtgnBmj4CczhTq2HcOxrJf4def6yDt2uBxyv4bTVGx9Yx3uB4Gx0iK5kYvfma6B_LnkRWk331wjuXKQtBGYIuWkR8J5QtvBmIRVaa7AA19Z4xMIEAqbcuQ5p4I9FCElthBrJd9YOcouHK4U27xxYWJJXcJoTvzG7zWtiV76fHDeQLgAWvJJ7ww4NFgjhqc6AKA_2afxa4c_lAvVZgFuKL3XSCL7PfKxp6GhjcGKeSRr80PT1gfFw2xi8X4ejjNm_prsUZ'
console.log(datas(text))
posted @ 2023-03-15 01:55  __username  阅读(155)  评论(0)    收藏  举报