python有道翻译

肆虐中国的2019肺炎病毒到处都是只能呆在家中,无聊浏览网页,发现python挺流行的,看了几页,写个处女python程序:“有道翻译”。

这个程序挺有意思的,不过还有很多问题,很多疑问,例如,我在有道翻译网页查到的 url 是这个:

“Request URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule”,而这个用不了输入后得到的结果{"errorCode":50}。查了下网上及其一些教程,用的都是 Request URL:http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null,很多疑改成这个url就可以了,奇怪这个url在那里找到的。

贴下源码:

import urllib.request
import urllib.parse
import json
import time

while True:

    content = input('请输入你想要翻译的内容:')
    if content == 'a!':
        break

    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"

#    head = {}
#    head['User-Agent']="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"

    data = {}
    data['i'] = content
    data['from'] ='AUTO'
    data['to'] = 'AUTO'
    data['smartresult'] = 'dict'
    data['client'] = 'fanyideskweb'
    data['salt'] ='15802818195729'
    data['sign'] ='298c756aec68d59bbb572e4986bd2a40'
    data['ts'] ='1580281819572'
    data['bv'] ='530358e1f56d925c582f7d2d49f07756'
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_REALTlME'


    data = urllib.parse.urlencode(data).encode('UTF-8')

#    req = urllib.request.Request(url,data,head)
    req = urllib.request.Request(url,data)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36')
    response = urllib.request.urlopen(req)
    html = response.read().decode('utf-8')
    #print(html)
    target = json.loads(html)
    #print(type(target))
    #逐步拆解,获取结果
    print('你想翻译的内容是:',(target['translateResult'][0][0]['src']))
    print('翻译结果是:',(target['translateResult'][0][0]['tgt']))
    time.sleep(5)

##req = urllib.request.Request('http://placekitten.com//g/500/600')
##response = urllib.request.urlopen(req)
##cat_image = response.read()
##
##with open('cat_500_600.jpg','wb')as f:
##    f.write(cat_image)

猜你喜欢

转载自blog.csdn.net/harhy/article/details/104107873