Python 简易实现翻译功能,用有道API 【1】

# -*- coding: utf-8 -*-


import requests

import time

import hashlib

import random


class youdao_crawl():

    def __init__(self):
        self.headers = {

            'User-Agent': '自己的User-Agent',

            'Referer': 'http://fanyi.youdao.com/',

            'Cookie': '自己的cookie'  # 一次放入 长久有效

        }

        self.data = {

            'i': None,

            'from': 'AUTO',

            'to': 'AUTO',

            'smartresult': 'dict',

            'client': 'fanyideskweb',

            'salt': None,

            'sign': None,

            'ts': None,

            'bv': None,

            'doctype': 'json',

            'version': '2.1',

            'keyfrom': 'fanyi.web',

            'action': 'FY_BY_REALTlME'

        }

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

    def translate(self, word):
        ts = str(int(time.time() * 10000))

        salt = str(int(time.time() * 10000) + random.random() * 10 + 10)

        sign = 'fanyideskweb' + word + salt + ']BjuETDhU)zqSxf-=B#7m'

        sign = hashlib.md5(sign.encode('utf-8')).hexdigest()

        bv = '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'

        bv = hashlib.md5(bv.encode('utf-8')).hexdigest()

        self.data['i'] = word

        self.data['salt'] = salt

        self.data['sign'] = sign

        self.data['ts'] = ts

        self.data['bv'] = bv

        re = requests.post(self.url, headers=self.headers, data=self.data)

        return re.json()['translateResult'][0][0].get('tgt')


if __name__ == '__main__':

    youdao = youdao_crawl()

    while True:

        content = input("输入q结束,\n"
                        "请输入您需要翻译的内容: ")

        if content == "q":
            break

        trans = youdao.translate(content)

        print(trans)

 

posted @ 2020-10-13 20:53  凹凸曼大人  阅读(153)  评论(0)    收藏  举报