Python实现本地翻译API
'''
JS加密代码
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 + "Ygy_4c=r#e#4EX^NUGUc5")}};
r = lts i = salt e = word
'''# import time
# print(int(time.time())*10000)
# '16549975400000' python输出
# '16549969865516' 有道 lts
# 'sign: ca53ec0dbad1d3ad020fcfabc86f0387' 32位import random
import time
from hashlib import md5
import requestsclass YoudaoSpider:def __init__(self):# url一定要写抓包时抓到的POST请求的提交地址,但是还需要去掉 url中的'_o',# '_o'这是一种url反爬策略,做了页面跳转,若直接访问会返回{"errorCode":50}self.url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"}# 获取lts时间戳,salt加密盐,sign加密签名def get_lts_salt_sign(self, word):lts = str(int(time.time()*10000))salt = lts+str(random.randint(0, 9))string = "fanyideskweb" + word + salt + "Ygy_4c=r#e#4EX^NUGUc5"s = md5()# md5的加密串必须为字节码s.update(string.encode())# 16进制加密sign = s.hexdigest()print(lts, salt, sign)return lts, salt, signdef attack_yd(self, word):lts, salt, sign = self.get_lts_salt_sign(word)# 构建form表单数据data = {'i': word,'from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','salt': salt,'sign': sign,'lts': lts,'bv': 'bdc0570a34c12469d01bfac66273680d','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_REALTlME'}# 使用 reqeusts.post()方法提交请求resp = requests.post(self.url, headers=self.headers, data=data)# 将json格式的字符串转为python数据类型html = resp.json()print(html)# {"translateResult":[[{"tgt":"你好世界","src":"hello world"}]]}res = html['translateResult'][0][0]['tgt']print('翻译结果:', res)def run(self):try:word = input('请输入要翻译的单词:')self.attack_yd(word)except Exception as e:print(e)if __name__ == '__main__':spider = YoudaoSpider()spider.run()
网址https://fanyi.youdao.com/
先去控制台抓包 获取表单数据 仔细观察变化规律 salt lts sign 三个是变化的数据
再去源代码部分格式化JS代码分析 获取加密字符串的Python表示
Python实现本地翻译API相关推荐
- python调用百度翻译-Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- 让Python使用Bing翻译API V2
最近要整点自动翻译的东东,发现最亲民的Google的翻译API关闭了.那么摆在码农的面前大概也只有2条路, 一是,直接使用web版本的的google翻译,然后分析URL,和结果得到翻译结果.然后直接调 ...
- 转:利用python调用谷歌翻译API
废话少说 从速卖通抓取了一些评论想进行一些简单的文本分析,但是因为速卖通是一个跨境电商平台,上边的评论基本都是小语种,对,小语种,俄语,法语...英语还可以勉强应付一下,但是其他真的是一个字母都不认识 ...
- python调用百度翻译api+离线语种检测
百度翻译api调用(具体参考的哪篇博文找不到了,好几篇太像了,原作者留意到可以告知我改转载附上链接): import urllib, hashlib import random import requ ...
- python有道翻译接口-Python调用有道翻译api实现翻译
通过调用有道翻译的api,实现中译英.其他语言译中文 代码: # coding=utf-8 import urllib import urllib2 import json import time i ...
- 测试一些利用PYTHON完成中英文翻译的效果
简 介: 测试了一些在线翻译工具的效果,利用有道翻译 可以方便对常见到的生词进行确认.对于 TEASOFT软件PYTHON功能进行改建,给出了 ?>的翻译模式功能. 关键词: 在线翻译,中英文翻 ...
- python实现简单的api接口-简单实现Python调用有道API接口(最新的)
# ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...
- 【2019-07-23】]python3 把日语翻译为中文 调用百度翻译API接口及API申请使用教程
点击申请百度翻译API,得到一个你自己的API账户. 点击查看申请教程,感谢教程原作者. API官网提供了一个python2的使用接口的demo还有详细的解释文档 想用python3完成,代码几乎照搬 ...
- python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
本文实例讲述了Python通过调用有道翻译api实现翻译功能.分享给大家供大家参考,具体如下: 通过调用有道翻译的api,实现中译英.其他语言译中文 Python代码: # coding=utf-8 ...
- Python 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示
Python 调用有道翻译 api 接口翻译整篇西班牙文实战演示 第一章:翻译效果展示 ① 翻译文章示例一[阿尔卡拉门的无海摩纳哥:"不到4万欧元,你就不能在这里租任何东西."] ...
最新文章
- AI视频行为分析系统项目复盘——技术篇4:deepsort原理图
- 配置告警系统主脚本main.sh mon.sh load.sh 502.sh disk.sh
- Android开发之 当前日期String类型转date类型 java代码中实现方法
- ROS-Kinetic 中使用XSENS MTI 1 姿态传感器
- MySQL(四)字段及常用函数
- virtualbox 启动时报Kernel driver not installed (rc=-1908) 的错误
- 启动JavaFx程序界面乱码如何解决?
- 为什么要减少代码中该死的 if else 嵌套
- 线性查找算法(BFPRT)
- mysql 8.0.11 Windows安装
- 利用Python实现阴阳师自动抽卡
- 虚幻动画蓝图按层级的动画混合(layered)
- 交叉熵损失函数详解推导
- 美通社企业新闻汇总 | 2019.1.9 | 直销巨头雅芳出售广州工厂,美团合作海外公司发展无人配送...
- AnyConnect苹果IOS系统Iphone手机的设置教程
- 全志A33uboot设置读秒延时启动Linux,build.sh初步了解
- 维深集团荣获2004年物流与采购信息化优秀方案大奖
- 【GZOI 1032G】腐败分子看直播(树)
- 左右无缝轮播html,JS实现左右无缝轮播图代码
- 给手机安装NES模拟器,游戏无限玩