当前位置: 首页 > news >正文

2023 js逆向爬虫 有道翻译 代码

前置条件:nodejs环境、安装  crypto 和  python3环境

js.js文件:

const crypto = require("crypto")function decode(resp_data) {g_o = 'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl'g_n = 'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4'const g_o_1 = new Uint8Array(crypto.createHash('md5').update(g_o).digest())const g_n_1 = new Uint8Array(crypto.createHash('md5').update(g_n).digest())const cipher = crypto.createDecipheriv('aes-128-cbc', g_o_1, g_n_1)let s = cipher.update(resp_data, 'base64', 'utf-8')s += cipher.final("utf-8")return s
}

python代码

import json
import time
from hashlib import md5
import requests
import execjs
from jsonpath import jsonpathprint("=" * 12)
print("有道翻译v1.0")
print("=" * 12)while 1:ch_value = input("请输入待翻译的内容 ==> ")# 发送请求 - signtime1 = int(time.time() * 1000)s1 = f'client=fanyideskweb&mysticTime={time1}&product=webfanyi&key=fsdsogkndfokasodnaso'obj = md5()# 要加密的内容,必须传入字节obj.update(s1.encode('utf-8'))sign = obj.hexdigest()url = "https://dict.youdao.com/webtranslate"headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36','referer': 'https://fanyi.youdao.com/','origin': 'https://fanyi.youdao.com','cookie': 'OUTFOX_SEARCH_USER_ID_NCOO=648817392.8377072; OUTFOX_SEARCH_USER_ID=-1140685951@47.109.4.40; hb_MA-B0D8-94CBE089C042_source=www.baidu.com'}data = {"i": ch_value,"from": "auto","to": "auto","domain": 0,"dictResult": "true","keyid": "webfanyi","sign": sign,"client": "fanyideskweb","product": "webfanyi","appVersion": "1.0.0","vendor": "web","pointParam": "client,mysticTime,product","mysticTime": str(time1),"keyfrom": "fanyi.web"}resp = requests.post(url=url, data=data, headers=headers)# 解密with open('./js.js') as f:js_code = f.read()js = execjs.compile(js_code)ret = js.call("decode", resp.text)translateResult_tgt = jsonpath(json.loads(ret), '$..translateResult..tgt')[0]print("翻译的结果 ==> ", translateResult_tgt, sep='')print("")

http://www.lryc.cn/news/137925.html

相关文章:

  • 【物联网无线通信技术】NFC从理论到实践(FM17XX)
  • Python爬虫猿人学逆向系列——第六题
  • idea使用tomcat
  • 搭建Tomcat HTTP服务:在Windows上实现外网远程访问的详细配置与设置教程
  • Java学习笔记——继承(包括this,super的使用总结)
  • Android 获取应用sha1和sha256
  • c# 方法参数修饰符(out、ref、in)的区别
  • shell 编写一个带有进度条的程序安装脚本
  • 服务器数据恢复-AIX PV完整镜像方法以及误删LV的数据恢复方案
  • 首席执行官Adam Selipsky解读“亚马逊云科技的技术产品差异化”
  • C++ Day3
  • OpenEuler 安装mysql
  • [Docker] Windows 下基于WSL2 安装
  • (未完成)【Spring专题】SringAOP底层原理解析——阶段三(AOP)
  • 使用Nodejs创建简单的HTTP服务器,借助内网穿透工具实现公网访问的方法分享
  • 使用 OpenTelemetry 构建可观测性 03 - 导出
  • Pyqt5打开电脑摄像头进行拍照
  • Flowable 7.0.0.M2 版本功能
  • 【golang】关于指针的有限操作
  • ProGuard + SpringBoot3 + JDK17
  • Kafka面试
  • Amazon CloudFront 部署小指南(六)- Lambda@Edge 基础与诊断
  • centos7安装hadoop 单机版
  • 村口的人家排放污水,污水浸染了整个村子,怎么办
  • 算法leetcode|72. 编辑距离(rust重拳出击)
  • 实训笔记8.21
  • robust distortion-free watermarks for language models
  • PTS性能测试工具-使用记录
  • 【boost网络库从青铜到王者】第六篇:asio网络编程中的socket异步读(接收)写(发送)
  • django sqlite3操作和manage.py功能介绍