Python调用有道API翻译

Python实现有道翻译

# coding=utf-8
# Python3.x
"""
利用有道翻译
"""
# import hashlib
# import time
# from random import choice, randint
# import urllib.parse
# import urllib.request
import json
import requests


def traslate(words):
    # x = time.ctime()+str(randint(1, 11))
    # y = "fanyideskweb" + words + x + "ebSeFb%=XZ%T[KZ)c(sy!"
    # # 创建MD5对象
    # m = hashlib.md5()
    # b = y.encode(encoding='utf-8')
    # m.update(b)
    # z = m.hexdigest()

    # 目标URL
    targeturl = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    # 自定义表单,
    form_data = {
        "type": "AUTH",
        "i": words,
        # "salt": x,
        # "sign": z,
        "doctype": "json",
        "Version": "2.1",
        "keyfrom": "fanyi.web",
        "ue": "UTF-8",
        "action": "FY_BY_CLICKBUTTON",
        "typoResult": "false"
    }
    # 方法一 利用urllib.request
    # # 将data转换成标准格式
    # data = urllib.parse.urlencode(data).encode("utf-8")
    # # 发送用户请求
    # html = urllib.request.urlopen(targeturl, data)
    # 读取并解码内容
    # result = html.read().decode('utf-8')
    # 利用json.loads(xxx)字符串转成字典
    # res_dict = json.loads ( result )
    # 字典里面返回翻译的内容
    # return res_dict["translateResult"][0][0]["tgt"]

    # 方法二 这里我们使用requests库比较方便
    html = requests.post(url=targeturl, data=form_data)
    # 返回响应内容
    text = html.content
    # 转成原有的字典格式
    res_dict = json.loads(text)
    return res_dict["translateResult"][0][0]["tgt"]


if __name__ == '__main__':
    print('\033[0;36m"q"表示退出,支持中英翻译,')
    print("-"*10)
    while True:
        words = input("请输入需要查询的单词或者句子:\n")
        if words in ['q', "Q"]:
            break
        res = traslate(words)
        print('\033[1m翻译结果:\033[0m', '\033[1;31m%s\033[0m' % res)

测试结果如下

注意

如果无法运行 尝试将最上面注释的加密salt sign 代码放开,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ko-walski

太难了,求鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值