使用Python写的翻译工具

环境:Python3.5

使用有道翻译,通过Post提交json来实现

源码如下

import urllib.request
import urllib.parse

import json


def fanyi(content):

    url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link'
    data={}
    data['type']='AUTO'
    data['i']=content
    data['doctype']='json'
    data['xmlVersion']='1.8'
    data['keyfrom']='fanyi.web'
    data['ue']='UTF-8'
    data['action']='FY_BY_CLICKBUTTON'
    data['typeResult']='true'
    #重新编码为utf8
    data=urllib.parse.urlencode(data).encode('utf-8')
    resquse=urllib.request.Request(url,data)
    #第二种添加head的方法
    resquse.add_header('User-Agent','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0')
    response=urllib.request.urlopen(url,data)
    #返回值
    html=response.read().decode('utf-8')
    #json解码后为词典
    jsonLoad=json.loads(html)
    #获取解码后得值
    translateResult=jsonLoad['translateResult'][0][0]['tgt']
    print('翻译结果为:'+translateResult)
    #其他意思
    try:
        smartResult=jsonLoad['smartResult']['entries']
        for i in smartResult:
            if(i):
                print('其他意思'+i)
    except KeyError:
        print('只有一个意思')
    print('************************************************************************')

if __name__=='__main__':
    while True:
        print("请输入要翻译的内容,如果退出输入q")
        content=input()
        if(content=='q'):
            break
        fanyi(content)


测试结果:

/usr/bin/python3.5 /home/lcy/PycharmProjects/youdaofanyi/fanyi.py
请输入要翻译的内容,如果退出输入q
你在干嘛?
翻译结果为:What are you doing?
只有一个意思
************************************************************************
请输入要翻译的内容,如果退出输入q
Python
翻译结果为:Python
其他意思n. 巨蟒;大蟒;丹舌
其他意思n. (Python)人名;(法)皮东
************************************************************************
请输入要翻译的内容,如果退出输入q




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值