python 有道翻译,python 实现有道翻译功能
初期操作
打开有道翻译界面—F12—Network—在翻译框中输入'hello'—在Network下面发现名为'translate_o?smartresult......'返回翻译之后的数据
分析参数
把所有的Request Headers、params都写上尝试爬虫,可以得到结果。
然后Request Headers中Headers、Host、Origin、Referer三项留下,Cookie一项经尝试只有 OUTFOX_SEARCH_USER_ID=-1927650476@223.97.13.65;会验证而且尝试多次之后我这里是没有变化的。
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Content-Length: 252
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: OUTFOX_SEARCH_USER_ID=-1927650476@223.97.13.65; OUTFOX_SEARCH_USER_ID_NCOO=1897197670.972445; JSESSIONID=aaalvPunK-sv2fyR-UjEx; ___rl__test__cookies=1612924426799
Host: fanyi.youdao.com
Origin: http://fanyi.youdao.com
Referer: http://fanyi.youdao.com/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
X-Requested-With: XMLHttpRequest
再就是params参数,变化的是salt、sign、lts,尝试后发现lts可有可无,所以变化的只有salt、sign两项。
i: 你好
from: AUTO
to: AUTO
smartresult: dict
client: fanyideskweb
salt: 16129244361391
sign: 2820759b6e54f25e0aa94e185e2265e3
lts: 1612924436139
bv: 3da01a09873456cfb5dba05f2124b148
doctype: json
version: 2.1
keyfrom: fanyi.web
action: FY_BY_REALTlME
分析salt、sign
全局搜索sign,结果中有fanyi.min.js文件,双击进入,然后右键选择'Open in Source panel',搜索'sign',找到如下代码:
define("newweb/common/service", ["./utils", "./md5", "./jquery-1.7"], function(e, t) {
var n = e("./jquery-1.7");
e("./utils");
e("./md5");
var r = function(e) {
var t = n.md5(navigator.appVersion)
, r = "" + (new Date).getTime()
, i = r + parseInt(10 * Math.random(), 10);
return {
ts: r,
bv: t,
salt: i,
sign: n.md5("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@")
}
};
可以看出salt是13位时间戳加了一个10以内的随机数,而sign是'固定字符串+e+i+固定字符串',其中i就是salt,而e经过断点调试(我选择在var t = n.md5(navigator.appVersion)这一行加断点,然后输入你好,会出现e='你好')可以得知e为我们要翻译的字符串。这样整个分析过程就结束了。
之后通过爬虫可以得到我们想要的数据,因为返回的是json数据,我们使用.json()来获得返回值更加方便。
Python代码
import hashlib
import random
import time
import requests
def get_data():
r = str(round(time.time() * 1000))
salt = r + str(random.randint(0, 9))
content = '你好'
data = "fanyideskweb" + content + salt + "Tbh5E8=q6U3EXe+&L[4c@"
sign = hashlib.md5()
sign.update(data.encode("utf-8"))
sign = sign.hexdigest()
# print(len(sign))
# print(sign)
return content, salt, sign
def send_request(content, salt, sign):
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers = {
'Cookie': 'OUTFOX_SEARCH_USER_ID=-1927650476@223.97.13.65;',
'Host': 'fanyi.youdao.com',
'Origin': 'http://fanyi.youdao.com',
'Referer': 'http://fanyi.youdao.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',
}
data = {
'i': str(content),
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': str(salt),
'sign': str(sign),
# 'lts': '1612879546052',
# 'bv': '6a1ac4a5cc37a3de2c535a36eda9e149',
# 'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME',
}
res = requests.post(url=url, headers=headers, data=data).json()
print('翻译后:', res['translateResult'][0][0]['tgt'])
print('翻译前:', res['translateResult'][0][0]['src'])
if __name__ == '__main__':
content, salt, sign = get_data()
send_request(content, salt, sign)
运行效果
以上就是python 实现有道翻译的详细内容,更多关于python 有道翻译的资料请关注脚本之家其它相关文章!
python 有道翻译,python 实现有道翻译功能相关推荐
- php 获取有道翻译,python爬虫 身边的翻译专家——获取有道翻译结果
[导读]有道翻译可以直接翻译内容,观察它的网页内容以及URL可以发现,它的基本url 和将要翻译的内容... 本文目的:使用python 实现翻译效果 思路:有道翻译可以直接翻译内容,观察它的网页内容 ...
- python微信公众号翻译功能_使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译...
1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...
- 使用Python实现基于API的网易有道翻译功能
使用Python实现基于API的网易有道翻译功能 1.打开有道翻译页面 2.在浏览器页面左键-检查-Network 3.进行翻译的操作,右键下面红色部分,Copy link address 粘贴出来为 ...
- Python爬虫:js加密实例-有道翻译
此项目,参考别人的教程,自己摸索了一下,将结果展示出来,以供后人参考 实现功能: 通过requests请求有道翻译的接口,返回翻译结果,并封装成函数使用 有道翻译地址:http://fanyi.you ...
- python爬虫实战之爬取有道翻译
文章目录 介绍 网页分析 代码实战 当我们学习python爬虫时我们需要做大量的练习,往后我会发布更多的python爬虫练习实战代码,进一步剖析爬虫的每一个细节 介绍 本次爬取的是有道翻译,利用pyt ...
- 超简单爬虫使用requests模块+有道云翻译,python实现翻译小功能
前言 最近隔壁小张找到我 "老王,最近我在学英语,不想想再打开网页翻译了,太麻烦了一直要开着网页" "那你可以下载客户端吗,不是挺方便的嘛?" "老王 ...
- 再见所有的翻译工具!我使用了有道云+Python开发一个批量文档翻译工具!
一.需求分析 需求: 最近有个任务,需要对一批文件进行汉译英的翻译 刚开始想着挺简单的呀,那就直接复制到翻译软件中,在复制出来呗. 有很多办法可以实现翻译: 可以使用谷歌翻译,这个完全免费的.但是不好 ...
- python api接口调用_python 调用有道api接口的方法
初学者学习python,研究了几天之后,我写了一个python程序调用有道api接口.效果如下图所示:声明:代码仅仅是像我这样的初学者学习和交流.应用程序非常简单.PS:评审不需要时间,请不要滥用!! ...
- 52道常见Python面试题,你都能答对吗?
52道常见Python面试题,你都能答对吗? 最近有很多人找小编询问python求职面试的一些情况,python岗位众多,面试官的个性也千人千面,其实是没有固定的套路的.还是一句老话,要成功拿下一个重 ...
- python修炼之道_Pythonic:Python 修炼之道
Pythonic:Python 修炼之道 金海飞 百度高级研发工程师 负责百度智能运维产品 (Noah) 基础组件的设计研发工作, 在程序部署, 数据传输方面有广泛的实践经验. 干货概览 作为一个码农 ...
最新文章
- 【笔记】js Function类型 内部方法callee
- autofac文档:服务类型,名称和键
- windows卸载程序提示“请等待当前程序完成卸载或更改“问题解决方法,windows卸载卡进程问题解决方法
- Python中的条件语句和循环语句
- python to sql_python的to_sql那点儿事
- 关于布地奈德的副作用
- The ntpath module
- 前端学习(2966):登录页面的制作
- php 生存分析,HPA数据库08.做生存分析
- 头像上传html js版,javascript头像上传代码实例
- html 文字悬停翻转,html5+TweenMax.js鼠标悬停文字翻转动画特效
- 全网疯传!传智播客java基础入门第二版pdf
- 工业4.0智能电批扭力输出异常问题
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100
- [HITS算法]Authoritative Sources in a Hyperlinked Environment
- PDF可以修改吗,如何在PDF上修改文字
- 新浪财经独家对话达利欧:桥水员工离职率曾高达30%
- 基于微信小程序做直播的截图(微信小程序发起视频直播)
- 实验一 熟悉常用的Linux操作和Hadoop操作
- 广州软博前端实习生面经
热门文章
- 单片机通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB
- gmp新附录 计算机系统,GMP新附录:计算机系统.doc
- java方法重载[详解]
- Oracle 计算时间差
- 控制台出现 Page “xxx“ has not been registered yet 和 uniapp的报错Uncaught Error: Module build fail xxx
- C# 写XML格式的字符串 (是否保存到硬盘)
- ICLR 2022 | 合作博弈新范式:为可解释性等机器学习估值问题提供新方法
- python风格迁移_图像风格迁移实战(附Python实战)
- 职称计算机word中文字处理,职称计算机考试:Word97中文字处理
- Java常量池详解:字符串常量池、Class常量池、运行时常量池 三者关系