# -*- 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)

 

版权声明:本文为aotumandaren原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/aotumandaren/p/13811173.html