程序实现 百度翻译

百度翻译

import json
import requests


class Translate(object):
    def __init__(self, query_string):
        self.start_url = 'https://fanyi.baidu.com/langdetect'
        self.url = "https://fanyi.baidu.com/basetrans"
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Mobile Safari/537.36"}
        self.query_string = query_string

    def get_post_data(self, lan):
        if lan == "en":
            post_data = {
                "query": self.query_string,
                'from': 'en',
                'to': 'zh'
            }
        else:
            post_data = {
                "query": self.query_string,
                'from': 'zh',
                'to': 'en'
            }
        return post_data

    def parse_url(self, url, data):
        response = requests.post(url=url, data=data, headers=self.headers)
        json_str = response.content.decode()
        return json.loads(json_str)

    def language(self, json_str):
        return json_str['trans'][0]['dst']

    def run(self):
        # 发起请求, 获取语言类型
        item_dict = self.parse_url(self.start_url, {'query': self.query_string})
        # 构造数据
        data = self.get_post_data(item_dict['lan'])
        # 发起请求
        item_dict = self.parse_url(self.url, data)
        words = self.language(item_dict)
        # 翻译单词/语句
        print("【 {} 】 : {}".format(self.query_string, words))


if __name__ == '__main__':
    words = input('>')
    translate = Translate(words)
    translate.run()

猜你喜欢

转载自blog.csdn.net/weixin_44090694/article/details/85002486