发布于2020-03-10 20:05 阅读(1870) 评论(0) 点赞(4) 收藏(4)
有道翻译官网:http://fanyi.youdao.com/
打开网页,F12找到translate这个XHR文件中存在主要信息,找到最后的From Data(数据的来源,如何获取的,最后调用翻译)
对于这两组数据,不知道是什么?(虽然bv也不知道是什么,不过好像对项目没有直接的影响)看到sign可能是一个十六进制的数据,通过找到fanyi.min.js(别问我怎么知道是这个文件,一个个JS文件打开来自己慢慢看,有没有自己想要的)
将JS文件用在线json网站:https://www.json.cn/解析出来,搜索salt,找到
salt:I,sign:n.md5(“fanyideskweb"+e+i+"n%A-rKaT5fb[Gy?;N5@Tj” ”)
n%A-rKaT5fb[Gy?;N5@Tj
这个是有道翻译内部的识别码,也无需破解,直接模仿浏览器访问就好
使用print(res.json())获取到网页返回的json值,我们需要的数据在translateResult这个字典的键值对中的‘tgt’里,然而这个是有三层的,所以前面保存空位,用[0][0]存空位,最后打印出来。
print(res.json()['translateResult'][0][0]['tgt'])
salt和ts只是后面一个数字不同,而ts是时间,和time.time()*1000返回的值一直,所以salt是时间加上一个随机数。
fanyi.min.js文件中搜索salt可知
http://shared.ydstatic.com/fanyi/newweb/v1.0.22/scripts/newweb/fanyi.min.js
import requests
def get_salt():
import time
import random
salt = int(time.time()) * 1000 + random.randint(0, 9)
return salt
def get_sign(key, salt):
import hashlib
md5 = hashlib.md5()
str1 = "fanyideskweb" + key + str(salt) + "n%A-rKaT5fb[Gy?;N5@Tj"
md5.update(str1.encode())
return md5.hexdigest()
def fanyi(key):
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
salt = get_salt()
data = {
'i': str(str1),#用户输入的查询数据
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': get_salt(),
'sign': get_sign(key, salt),
'bv': 'b396e111b686137a6ec711ea651ad37c',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME',
}
headers = {
'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': str(len(data)),#文本长度
'Content - Type': 'application / x - www - form - urlencoded;charset = UTF - 8',
'Cookie': 'OUTFOX_SEARCH_USER_ID = 1005740237 @ 10.108.160.19;OUTFOX_SEARCH_USER_ID_NCOO = 1384111467.600651;\
JSESSIONID = aaam2Y9bDM - LJ61vp9D7w;___rl__test__cookies = 1575686365619',
'Host': 'fanyi.youdao.com',
'Origin': 'http: // fanyi.youdao.com',
'Referer': 'http: // fanyi.youdao.com /',
'User - Agent': 'Mozilla / 5.0(WindowsNT10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko)\
Chrome / 75.0.3770.100Safari / 537.36,X - Requested - With: XMLHttpRequest',
}
res = requests.post(url=url, headers=headers, data=data)
print(res.json()['translateResult'][0][0]['tgt'])
if __name__ == '__main__':
str1 = input("请输入需要翻译的内容:")
fanyi(str1)
原文链接:https://blog.csdn.net/JeeCai/article/details/104751902
作者:我是小白兔
链接:https://www.pythonheidong.com/blog/article/251428/bd110a679cfd22d9db1c/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!