第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 最新官方有道翻译接口破解调用(详)

最新官方有道翻译接口破解调用(详)

时间:2024-06-04 21:35:44

相关推荐

最新官方有道翻译接口破解调用(详)

以下是我从老师那学到的关于有道翻译接口破解调用的分析过程以及方法(截止更博前依旧有效):

1.首先进入有道翻译界面,在输入框尝试输入数据以获取请求,经过抓包后找到POST请求的接口

观察响应

这就是我们要找的POST接口了

2.接着分析表单数据

经过几次尝试发现,只有salt,sign,ts等数据是变化的(后来发现bv也是变量,是根据浏览器版本号(不变)而生成的)

接着分析从sign关键字中获取相应的js代码

结果在下面,要上拉,我第一次使用一直找不到在哪,尴尬

双击进入代码页,点击下面的{}可以规范化代码,ctrl+f查找关键字sign,结果有15个,向下查找,可以看到生成sign的直接代码,在这一行设置断点,再次点击翻译(不是刷新界面),可以看到各自对应的值

3.分析JS代码

到了这步接口的破解也就差不多了,接下来就是正常的编写代码的过程了,在python中js代码可以自己反写(如,时间撮等于time.time(),随机数random.randint(0, 9)),也可以导入execjs库进行执行js代码

代码展示

import requests as reqimport hashlib as hashimport randomimport jsonimport timeurl = "/translate_o?smartresult=dict&smartresult=rule/"# 获取MD5的函数def get_md5(string):string = string.encode('utf8')md5 = hash.md5(string).hexdigest() # 返回摘要 32位字符串return md5# 给一个要翻译的字符串,返回翻译结果def FY(string=None):header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"" AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/80.0.3987.116 Safari/537.36","Cookie": r"P_INFO=wpqds666@|1579875330|0|other|00&5|gux&1579800987"r"&mail163#gux&451100#10#0#0|&0|nmtp&urs&mail163&g98_client|"r"wpqds666@; OUTFOX_SEARCH_USER_ID=1855731151@10.169.0.83;"r" JSESSIONID=aaax2Zh8Ygz-Z-pHZo8bx; OUTFOX_SEARCH_USER_ID_NCOO=113884837.0691015;"r" ___rl__test__cookies=1582632370604","Referer": "/",}# 反写js代码,获取sign,ts,bv,saltts = str(int(time.time() * 1000)) # ts是个时间戳salt = ts + str(random.randint(0, 9)) # salt是ts+0到9随机数sign = get_md5("fanyideskweb" + string + salt + "Nw(nmmbP%A-r6U3EUn]Aj")version = "5.0 (Windows NT 10.0; Win64; x64) " \"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"bv = get_md5(version)# POST表单datas = {"i": string,"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": salt,"sign": sign,"ts": ts,"bv": bv,"doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTION",}r = req.post(url=url, headers=header, data=datas)"""破解简单翻译后可以尝试进入详细翻译的url以获取更加详细的翻译内容"""# detail_utl = "/search?"# get_data = {#"q": string,#"keyfrom": "new-fanyi.smartResult",# }# r = req.get(url=detail_utl, headers=header, params=get_data)print(r.text)def main():string = input("请输入你要翻译的单词:")FY(string)if __name__ == '__main__':main()

结果

在此声明:

因为本人是入门python的萌新一枚,同时也是写博客的新手,很多东西都是从基础的开始了解,所以写的可能有点啰嗦,这也是为了向更多像我一样的萌新能展现出更全面的过程,以此对自己的编程之路更加充满信心。给能看到这里的各位看官一个大大的赞。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。