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))
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17217085.html