[21]有道翻译的那些事~

2023-11-10

2017 年最新有道翻译API 解析教程

有道翻译参数

从上面接口:大概可以推测一下,

  • i: 需要翻译的内容

  • from:

  • to: 这两个key 都为AUTO 大概猜测一下应该为自动翻译,自动检测语言并翻译

smartresult:clientdoctypeversionkeyfromtypoResult参数我们先不管,毕竟提交多次这几个值一直没有任何变化。应该是在浏览器上的一个固定值,就先别浪费时间了。

action: 判断当你是按回车提交或者点击按钮提交的方式

然后我们再看下提交的结果:

提交结果

一个json 这就不用多解释什么了吧。

然后在看下salt、sign 这两个是怎么回事

salt 一看,就像是一个时间戳。 但是以往的坑基本都是时间戳然后右移几位,然后+ 随机数或者什么秘钥之类的。不过还是先把时间戳去转换一下看有什么问题。

发现salt 就是一个当前时间的时间戳,并没什么复杂的。

salt = 当前时间戳。

最后就只有一个参数了sign

然后我们找到 他的js代码中发现了一段这种代码。

md5(u + d + f + c)

我们在顺藤摸瓜找到:u d f c 到底是什么东西

d =‘翻译’ #待翻译的内容

u =fanyideskweb # client

f =str(int(time.time()*1000)) #时间戳 我这里是用的python 所以乘1000

c =“rY0D^0’nM0}g5Mm1z%1G4”
这段东西有点邪门了。一段用来加密的字符串,然而通过这段字符串找到他的加密方式是 deEight("rY0D^0'nM0}g5Mm1z%1G4")

然后我们在找找这个deEight 是用来干嘛的。

deEight: function(e) {

      var t, n = new Array,

      r = e.split("\\");

      if (1 == r.length) return r[0];

      for (t = 1; t < r.length; t++) n += String.fromCharCode(parseInt(r[t], 8));

      return e = n

}

然后自己在google js工具里面调用一下,发现这丫的返回的就是原值。

然后自己还是在python里面用execjs调用,但是莫名其妙出错了。弄不明白,不过说实话python 的execjs模块确实感觉不是很好用。(稍微吐槽一下)

然后根据md5的方式:md5(u + d + f + c) 这样拼接字符串 生成sign参数。

整个有道翻译的API就完成了。

1、POST 提交接口

http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null

2、相关参数

data= {

'i':d,                  #需翻译的内容

'from':'AUTO',       #应该是自动翻译还是人工

'to':'AUTO',

'smartresult':'dict',        

'client':u,              #客户端

'salt':f,               #时间戳

'sign':m.hexdigest(),          #根据数据包的内容进行的md5 加密

'doctype':'json',

'version':'2.1',

'keyfrom':'fanyi.web',

'action':'FY_BY_ENTER',

'typoResult':'true'

}

完整代码:

import urllib.request
import urllib.parse
import json
import time
import requests
import hashlib

while 1:
    if __name__== "__main__":
        m = hashlib.md5()
        d = input('请输入要翻译的内容(输入“q!”退出程序):')
        if d=='q!':
            break
        u = 'fanyideskweb'
        f = str(int(time.time()*1000))
        c = "rY0D^0'nM0}g5Mm1z%1G4"
        m.update((u + d + f + c).encode('utf-8'))
        data= {
            'i':d,
            'from':'AUTO',
            'to':'AUTO',
            'smartresult':'dict',
            'client':u,
            'salt':f,
            'sign':m.hexdigest(),
            'doctype':'json',
            'version':'2.1',
            'keyfrom':'fanyi.web',
            'action':'FY_BY_ENTER',
            'typoResult':'true'
        }
        headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
            'Origin':'http://fanyi.youdao.com/',
            'Referer':'http://fanyi.youdao.com/',
        }
        #print(data)
        post_url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
        youdaojson = requests.post(post_url,headers = headers,data=data).json()
        #print(youdaojson)

        print('翻译的结果是:%s'%(youdaojson['translateResult'][0][0]['tgt']))
        time.sleep(2)

运行效果如下:

效果展示

参考:http://www.jianshu.com/p/e45511bcd001

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[21]有道翻译的那些事~ 的相关文章

  • 文件系统的基本认知笔记

    1 什么是文件系统 常规认知 Linux下的根目录 文件系统是操作系统用于明确存储设备 常见的是磁盘 也有基于NAND Flash的固态硬盘 或分区上的文件的方法 即在存储设备上组织文件的方法 这种所谓的方法就是文件管理系统 程序 简称文件
  • Mac下使用Git和Git客户端

    先到git官网 https git scm com download 下载安装 这里的git服务器使用本地虚拟机centos来模拟 创建一个用户 名为gitter 用于专门管理git相关 adduser gitter passwd gitt
  • 飞翔的圆(Flappy Bird)游戏源码完整版

    这个源码是一个不错的休闲类的游戏源码 飞翔的圆 Flappy Bird 游戏源码V1 0 本项目是一个仿Flappy Bird的小游戏 只不过是把Flappy Bird里面的鸟替换成了简单的圆 感兴趣的朋友可以研究一下 本项目默认编码GBK
  • 【Ubuntu安装 Nginx】

    ubuntu安装nginx 目前支持两种安装方式 一种是apt get的方式 另一种是根据包安装的方式 为方便我统一使用root用户 一 apt get安装nginx 切换至root用户 sudo su root apt get insta
  • C语言深度剖析——bool类型,浮点数相等比较。

    目录 序言 一 bool类型 1 C语言中到底有没有bool类型 2 VS中的BOOL类型 二 浮点数与 0 比较 1 浮点数的精度缺失 2 浮点数判断相等解决方案 3 判断浮点数是否为 0 最后 序言 C语言中有很多类型 但是bool我们
  • 【AI人工智能】 最强大的语言模型镜像 使用起来真的太方便了! 真的要解放代码思维了吗?

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 前言 AI 在某些基础应用领域可以帮助你减少很多工作量 很强大哦 嘿嘿 优点 这玩意
  • VS2017 libTorch cpu 环境搭建

    C libTorch cpu 环境搭建 一 下载libTorch 下载地址 Start Locally PyTorch 可以在图中选择下载cuda版本或cpu版本的 以CPU Release版本的libTorch为例 下载地址为 https
  • Druid连接池 一个设置 removeAbandonedTimeout

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Druid连接池 一个设置 removeAbandonedTimeout 博客分类 数据库
  • 软件开发外包:你有什么选择

    在2019年 软件开发外包提供了各种各样的选择 成千上万的公司在全球范围内提供软件开发外包服务 您将有很多选择 具体取决于许多标准 例如地理位置 时差 语言要求 甚至文化相似性 2019年的软件开发外包状况如何 在过去的10到15年中 发达
  • 自己封装 vue3+ts 组件库并且发布到 NPM

    自己封装 vue3 ts 组件库并且发布到 NPM 创建项目 pnpm create vite 配置 package json 按照提示创建好项目 然后再 package json 中进行如下配置 name tribiani vue too
  • zip解压

    1 使用apache的ant解压 org apache tools zip 2 引入pom
  • [C++](26)智能指针

    文章目录 引入 智能指针的原理 C 智能指针及其问题 auto ptr unique ptr shared ptr weak ptr 删除器 引入 首先看下面这个程序 int div int a b cin gt gt a gt gt b
  • 服务器安装系统绑定网卡,HPE ProLiant 系列服务器Microsoft Windows Server 2012系统下网卡绑定方法...

    微软NIC组合 也称为负载平衡 故障转移 LBFO 允许多个网络适配器组合成一个 这样做的目的可以带来带宽聚合 解决网络连接失败过程中的故障转移 它应用于Windows Server 2012的所有版本中 包括核心版和图形界面完全版 1 打
  • 2022年,普通人如何找到适合的副业?

    这几天高温天气不适合户外工作和活动 坐在家里一动不动都能出汗 温度直飙升到40度以上了 同时我国的其他地方也阴雨连绵甚至有洪灾的可能性 每年夏季到来都会面临高温 暴雨 洪水 泥石流的恶劣天气 大自然也有脾气 所以我们还是要善待大自然爱护环境
  • mysql 创建function

    mysql 的function和procedure 仅对5 0版本后的有效 包括show function status等命令是没用的 以创建function为例 存储过程和这个差不多 懒得打字了 首先先在mysql 下运行 set glo

随机推荐

  • 基于MATLAB实现CAD技术及其应用完整教程(附上完整源码+数据+使用说明)

    MATLAB是一种功能强大的计算机辅助设计 CAD 工具 它为工程师和设计师提供了一种高效 灵活的方式来创建 分析和优化各种设计 在本文中 我们将介绍MATLAB如何实现CAD技术 并探讨其在不同领域中的应用 文章目录 介绍 部分源码 完整
  • 深度学习实验(四)——卷积神经网络编程

    深度学习实验四 卷积神经网络编程 本次实验练习使用torch nn中的类设计一个卷积神经网络进行MNIST手写体数字图像分类 name x 填写你的姓名 sid B02014152 填写你的学号 print 姓名 s 学号 s name s
  • 将cmd中命令输出保存为LOG文本文件

    演示 将Ping命令的加长包输出到D盘的ping log文本文件 1 在C 目录下创建文本文件这步可ping log 可以省略 偶尔提示无法创建文件时需要 2 在提示符下输入 ping www baidu com t l 100 gt C
  • 游戏开发物理引擎PhysX研究系列:示例项目SampleCustomGravity解读

    一 介绍 该示例项目的主要目的是模拟一个角色在行星上面移动时的模拟 主要对象有 行星 定义了质心 角色 使用CapsuleController 角色行为有 跳跃 重力 二 实现思路 物体朝向 每帧计算当前物体的朝向 计算物体质心与行星质心两
  • 将一个十六进制字符串转换为十进制数值的问题

    在程序中 我们有时需要将一个十六进制字符串转换为十进制数字 比如 char ptr 0x11 int n 0 我们想让n等于0x11 即17 通常我们在C中 想将一个字符串转换为一整形数字 通常会使用下面的方法 char ptr 123 i
  • 如何发送一个验证码到邮箱

    有时候经常会有一个网站注册时会发送一个验证码 然后通过这个验证这个验证码来确定这个邮箱不是不你的 你可能会觉得发送一个验证码到邮箱很高大上 看完这篇文章你一定会决定这件事不过如此 要发送验证码 首先我们要创建一个生成验证码的类 随机生成验证
  • seata1.3.0 系列学习(一、seata1.3.0 安装)

    下载seata 此处选用目前最新版本1 3 0 解压完成后 注 seata官方从1 0版本后不再提供sql脚本 以及nacos推送配置脚本 需要从0 9 0的版本复制 将红色框框的四个文件复制到1 3 0 conf目录下 执行db stor
  • Linux共享服务samba设置

    文章目录 一 Samba服务器介绍 1 samba是什么 2 Samba的应用环境 3 Samba的工作原理 二 Samba服务基础 三 Centos7 samba共享服务实验 1 安装共享服务 2 修改smb conf配置文件 设置共享
  • 基于jquery的自定义显示消息数量

    根据需求简单的实现一个小功能控件 暂时不支持扩展 xxxxxxx iconCountPlugin options start isOffset 三个参数 自定义样式 是否禁止图标位置随浏览器窗口变化而变化 是否禁用偏移量这个是调用 后面俩参
  • Android 悬浮于输入法软键盘顶部的输入框

    Android app 开发中经常会遇到一些输入框要悬浮到软键盘上方的需求 大致做法有做法如下 Android输入法软键盘悬浮 最常见的一种方法是通过给ViewTreeObserver添加ViewTreeObserver OnGlobalL
  • C++11 智能指针详解

    C 程序设计中使用堆内存是非常频繁的操作 堆内存的申请和释放都由程序员自己管理 程序员自己 管理堆内存可以提高了程序的效率 但是整体来说堆内存的管理是麻烦的 C 11 中引入了智能指针的 概念 方便管理堆内存 使用普通指针 容易造成堆内存泄
  • MS08-067 漏洞复现报告

    漏洞简介 MS08 067漏洞全称是 Windows Server服务RPC请求缓冲区溢出漏洞 攻击者利用受害者主机默认开放的SMB服务端口445 发送特殊RPC Remote Procedure Call 远程过程调用 请求 造成栈缓冲区
  • pluto实现分析(2)——代码函数调用关系

    本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1 hotmail com 来源 http yfydz cublog cn 4 代码函数调
  • word 里文字对齐的4种方法。

    转自 微点阅读 https www weidianyuedu com 我们在用Word写论文 制作简历的时候 通常会遇到把word中某些特定文字对齐的情况 那么问题来了 你平时都是怎么对齐文字的 傻傻的用空格来对齐吗 在字符数不等的情况下
  • Android Studio检测内存泄露和性能

    http www jianshu com p 216b03c22bb8
  • Apollo代码学习(二)—车辆运动学模型

    Apollo代码学习 车辆运动学模型 前言 车辆模型 单车模型 Bicycle Model 车辆运动学模型 阿克曼转向几何 Ackerman turning geometry 小结 Apollo 阿波罗 是一个开放的 完整的 安全的自动驾驶
  • Python 使用pyinstaller打包后,print打印颜色乱码

    问题描述 Python 使用pyinstaller打包后 print打印颜色乱码 如图 代码如下 直接运行是正常的 使用pyinstaller打包后运行乱码 class bcolors OKRED 033 1 31m END 033 0m
  • 单片机 LCD1602液晶显示

    proteus 8 kile5 代码 include
  • 微机系统与接口——2.汇编语言

    目录 1 汇编 2 寻址方式 3 指令系统 3 1 数据传输指令 3 2 算数运算指令 3 3 逻辑运算和移位指令 3 4 串操作指令 3 5 控制转移指令 3 6 处理器控制指令 4 伪操作指令 5 DOS系统功能调用 6 汇编语言源程序
  • [21]有道翻译的那些事~

    2017 年最新有道翻译API 解析教程 从上面接口 大概可以推测一下 i 需要翻译的内容 from to 这两个key 都为AUTO 大概猜测一下应该为自动翻译 自动检测语言并翻译 smartresult client doctype v