破解有道词典在线翻译接口--python
没什么好说的,直接上代码。
import requests
# import json
import time
import random
import hashlib translate = input('>>>>>>>')
url_1 = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
ts = str(int(time.time()*1000))
salt = ts + str(int(random.random()*10))
print(ts,salt)
md5 = hashlib.md5()
md5.update(("fanyideskweb" + translate + salt + "p09@Bn{h02_BIEe]$P^nG").encode('utf8'))
sign = md5.hexdigest()
print(sign)
data = {'i': translate,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'ts': ts,
'salt': salt,
'sign': sign,
'bv': 'b8bcedb6e9d30eb0beaae6f2c4cb90f1',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTIME',
'typoResult': 'false',
}
cookies = {'OUTFOX_SEARCH_USER_ID': ###不告诉你自己看自己的##, 'OUTFOX_SEARCH_USER_ID_NCOO': ##不告诉你自己看自己的##,
'JSESSIONID': ##不告诉你自己看自己的###, '___rl__test__cookies': str(int(ts)-7)}
header = {'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'no-cache', 'Connection': 'keep-alive',
'Content-Length': '252',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'DNT': '1',
'Host': 'fanyi.youdao.com',
'Origin': 'http://fanyi.youdao.com',
'Pragma': 'no-cache',
'Referer': 'http://fanyi.youdao.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
} res_1 = requests.post(url_1, data=data, headers=header, cookies=cookies)
print(res_1.text)
稍微解释一下。
ts是根据系统时间生成的毫秒。(随便什么时间。我试过1990年都可以。)
salt是str(ts)后与1-9随机一个数字做拼接。
sign是MD5("fanyideskweb" + 待翻译内容 + salt + "p09@Bn{h02_BIEe]$P^nG")
bv是MD5(浏览器的版本信息,如5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36)所以请求头中一定要带 上User-Agent)
!cookies中的___rl__test__cookies应该是首次打开网页时的系统时间,后面每次请求都会变。总之就是记录发送翻译请求前的时间。随便拿ts减个数字就行了。(应该吧)
其他的参数。固定就行(看下自己浏览器发的数据填上去就行)。没具体测试每一个参数。懒得弄的,就把一直在变化的测试了下,其他都是复制粘贴的。
总之,有道的反爬还是很简单的。答案在js代码中都能找到。就这样吧。
破解有道词典在线翻译接口--python的更多相关文章
- 我在用的翻译软件 -> 微软翻译+网易有道词典+谷歌翻译
Windows网页翻译 因为微软翻译相对来说翻译网页更为准确,我也喜欢用谷歌的Chrome浏览器,但是我没找到微软翻译的扩展,这里只能放弃 这个需要配合Microsoft Edge浏览器进行使用,也是 ...
- Excel里内嵌在线翻译
本来寻思着继续写点系统运行日志跟踪技术的,但早晨哥家领导从单位打来电话,让帮助她的闺蜜搞一个excel翻译的问题,总部IT搞不定.我过去是用excel做了几年工作,却都是些数学计算,跟翻译也扯不上啊: ...
- Teamwork-Week2真对必应词典和有道词典的软件分析和用户需求调查(桌面版)
经调查,现在有道词典在该领域拥有很大程度的市场占有率,所以我们将有道词典与必应词典进行对比. 核心功能一:单词本 有道词典中的单词本都只能是由用户手动添加不会的单词,而必应词典中的单词 不仅可以被自己 ...
- Python破解js加密实例(有道在线翻译)
在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签名验证,对传输数据进行加密处理 对于js加密经过加密传输的就是 ...
- python:爬虫1——实战(下载一张图片、用Python模拟浏览器,通过在线的有道词典来对文本翻译)
一.下载一只猫 import urllib.request response = urllib.request.urlopen("http://cdn.duitang.com/uploads ...
- 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译
1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...
- Python爬虫教程-16-破解js加密实例(有道在线翻译)
python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...
- .net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- 【milonga】什么意思_英语milonga在线翻译_有道词典
[milonga]什么意思_英语milonga在线翻译_有道词典 milonga 网络释义英英释义 米隆加 本届探戈艺术节表演最受观众欢迎的是热情欢快的米隆加(Milonga)舞曲探戈,为了吸引年 ...
随机推荐
- 第六周 day6 python学习笔记
1.Python面向对象编程OOP(Object Oriented Programming) 封装:可以隐藏实现细节,使代码模块化 继承:可以扩展已存在的代码模块,可以使代码实现重用 多态:一种接口, ...
- Android MVP 简析
原地址:https://segmentfault.com/a/1190000003927200 在Android中应用MVP模式的原因与方法的简析,写的简单易懂.
- Oracle拆分字符串,字符串分割的函数。
第一种:oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2, --要分割的字符串 av_ ...
- 关于Could not obtain transaction-synchronized Session for current thread 这个异常。
Could not obtain transaction-synchronized Session for current thread 这个异常之前非常让我头大.对于网上的各种说法都试了一下反正都不 ...
- datetime中时间的formatter整理
datetime是个很常用的模块,这个连python初学者都应该知道,datetime中有两个函数:strftime和strptime,里面都有个参数format,可以将输出的时间格式化.例如 pri ...
- BZOJ3245:最快路线(最短路)
Description 精明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知道能开多快.不过有一个合理的方 ...
- 「uoj#188. 【UR #13】Sanrd」
题目 不是很能看懂题意,其实就是求\([l,r]\)区间内所有数的次大质因子的和 这可真是看起来有点鬼畜啊 这显然不是一个积性函数啊,不要考虑什么特殊的函数了 我们考虑Min_25筛的过程 设\(S( ...
- mysql5.7.22tar包安装
mysql5.7.22tar包安装 #卸载系统自带的Mariadb [root@ ~]# rpm -qa|grep mariadb mariadb-libs-5.5.44-2.el7.centos.x ...
- java 编写小工具 尝试 学习(三)
1.在 新建的 窗口上 添加 按钮 ,不废话 ,贴代码和 截图 package jFrameDemo; import java.awt.event.ActionEvent; import jav ...
- C# 5.0中使用CallerMemberName、CallerFilePath和CallerLineNumber获取代码的调用方信息(转载)
很多时候,我们需要在运行过程中记录一些调测的日志信息,如下所示: public void DoProcessing() { TraceMessage("DoProcessing()被XXX调 ...