python英文翻译-python中英文翻译

代码实现:

现在该 POST 的 Data 都有了,开始正式写代码啦,下面是程序的代码,每行我都有详细的注释,相信大家通过上面的分析也是可以看明白的。

import time # 时间戳

import json # 返回json 处理

import requests # 请求 url

import hashlib # md5 加密

def translate(word):

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'

# http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule

# 有道翻译的 API

t = str(int(time.time()*1000)) # 当前时间戳

s = "sr_3(QOHT)L2dx#uuGR@r" # 一段用来加密的字符串

sign_ = "fanyideskweb" + word + t + s

m = hashlib.md5() # 根据数据串的内容进行 md5 加密

m.update((sign_).encode('utf-8'))

# print(m.hexdigest())

word_key = { # key 这个字典为 POST 给有道词典服务器的内容

'i' :word,

'from':'AUTO',

'to':'AUTO',

'smartresult':'dict',

'client':'fanyideskweb',

'salt':t,

'sign':m.hexdigest(),

'doctype': 'json',

'version': '2.1',

'keyfrom': 'fanyi.web',

'action': 'FY_BY_CLICKBUTTION',

'typoResult': 'false'

}

response = requests.post(url,data = word_key)# 发送请求

#print(response)

# 判断服务器是否相应成功

if(response.status_code == 200):

return response.text

else:

print("有道 API 调用失败")

return None

def get_word_result(word):

# print(word)

word_result = json.loads(word)

# 通过 json.loads 把返回的结果加载成 json 格式

# print(word_result)

print("输入的词为:" + word_result["translateResult"][0][0]['src'])

print("翻译结果为:" + word_result["translateResult"][0][0]['tgt'])

def main():

print("欢迎使用,本程序调用有道词典 API 进行翻译 自动检测输入语言-->中文 中文-->英文")

while(True):

word = str(input("请输入你想翻译的词或者句子(输入 q 退出):"))

if(word == 'q'):

print("感谢使用")

break

word_ = translate(word)

get_word_result(word_)

if __name__ == '__main__':

main()

现在应该就大功告成了,不过当你运行上面的代码时,却发现 {"errorCode":50} 呀,怎么没有想要的结果呢?博主你是不是弄错了呀,哈哈哈,在这里如果你细心观察的话,你会发现有个东西我上面没有仔细说,那就是时间戳的得到,在 js 代码里我们可以看到的是,这里有一个反扒的机制,t = 当前时间的时间戳 + 0-10的随机字符串,巨坑。

20200302074936290.jpg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值