有道翻译web端 爬虫, js

news/2024/7/19 13:36:08 标签: 爬虫, js, python

以下内容写于2023-12-28, 原链接为:https://fanyi.youdao.com/index.html#/

1 在输入框内输入hello world进行翻译,通过检查发出的网络请求可以看到翻译文字的http接口应该是:

2 复制下链接最后的路径,去js文件中搜索下:

可以看到这里是定义了一个函数B来做文字的翻译接口函数,查询附近的代码可以发现存在一个t["a"]的map, key为decodeData,value为函数R,在函数R处下断点,改变输入框的输入,发现代码在此处断下.查看断点内容:

记录此处t的值可以发现该参数的值为1中返回的值,那么可以得出结论该函数负责对翻译后返回的加密字符串做解密

3 分析函数R可以得出该函数需要三个参数,分别为密文t,加密key o, 和加密向量n, 加密key为:'ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl',加密向量:'ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4', 加密方法为aes-128-cbc, 编写js方法进行验证:

至此,解密成功,在python中我使用的execjs库进行js方法的调用,如果觉得麻烦的话也可以使用寻找python的加解密方法来进行替换以提高执行效率,这里博主省事直接使用crypto库进行加解密


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

相关文章

再见2023,你好2024!

大家好,我是老三,本来今天晚上打算出去转一转,陆家嘴打车实在太艰难了,一公里多的路,司机走了四十分钟,还没到,再加上身体不适,咳嗽地比较厉害,所以还是宅在酒店里&#…

Vue中全局事件总线的配置和原理

实现任意组件之间的通信 任意组件通信的原理: 1、实现任意组件之间的通信,需要一个傀儡。这个傀儡既能被vm访问到,也能被VueComponent访问。 2、VueComponent.prototype.proto Vue.prototype为图上1.0黄色的线路。是Vue让组件实例对象VueComponent可以访问到Vue原…

【Unity入门】MenuItem 和 ContextMenu 的使用方法

目录 一、ContextMenu描述使用示例ContextMenuItem使用示例 二、MenuItem描述使用示例 三、MenuItem 和 ContextMenu 的区别 一、ContextMenu 描述 ContextMenu 属性用于向上下文菜单添加命令。 在该附加脚本的 Inspector 中,当用户选择该上下文菜单时&#xff0c…

听GPT 讲Rust源代码--library/panic_unwind

File: rust/library/panic_unwind/src/seh.rs 在Rust源代码中,rust/library/panic_unwind/src/seh.rs这个文件的作用是实现Windows操作系统上的SEH(Structured Exception Handling)异常处理机制。 SEH是Windows上的一种异常处理机制&#xff…

bat脚本:将ini文件两行值转json格式

原文件 .ini:目标转换第2行和第三行成下方json [info] listKeykey1^key2^key3 listNameA大^B最小^c最好 ccc1^2^3^ ddd0^1^9目标格式 生成同名json文件,并删除原ini文件 [ { "value":"key1", "text":"A大" …

Plantuml之甘特图语法介绍(二十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【Hadoop】如何启动和关闭Hadoop集群

启动Hadoop集群关闭Hadoop集群 启动Hadoop集群 参考官方文档Apache Hadoop 3.3.6 – Hadoop Cluster Setup 要启动 Hadoop 集群,需要同时启动 HDFS 和 YARN 集群。 首次启动 HDFS 时,必须对其进行格式化。将新的分布式文件系统格式化为 hdfs&#xff…

C#中字母与ASCⅡ码的转换

目录 一、关于ASCⅡ及与字符互转 1.主要用到Encoding对象的GetBytes方法 2.Char显式转换为数值类型得到ASCⅡ 二、实例 三、生成效果 四、程序中的一些知识点 1.IsLetterOrDigit() 2.GetBytes() 3.TryParse(string, out int) 一、关于ASCⅡ及与字符互转 ASCⅡ(Americ…