Python

Python实现翻译器

勤劳的小蜜蜂 · 3月3日 · 2019年 ·

效果展示

功能介绍

  • 本程序是控制台程序
  • 本程序调用了百度api
  • 中–>英
  • 其他语言–>中

代码实现

import requests
import json
import langid

class FanYi(object):

    #query_string:需要翻译的内容
    #lang:原语言
    #aimlang:目标语言
    #headers:请求头

    def __init__(self,lang,aimlang,query_string):
        self.url="https://fanyi.baidu.com/transapi"  #百度翻译api
        self.query_string=query_string
        self.lang=lang
        self.aimlang = aimlang
        self.headers ={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"}


    #请求内容
    def get_post_data(self):
        post_data={
        "from": self.lang,
        "to": self.aimlang,
        "query": self.query_string
        }
        return post_data

    #发送请求,获取请求
    def parse_url(self,url,data):
        response=requests.post(url,data=data,headers=self.headers)
        return response.content.decode()

    #解析请求返回的json串
    def get_data(self,json_str):
        data_dict=json.loads(json_str)
        if(list(data_dict.keys())[0]=="error"):
            print("~~~~出错啦!~~~~\n错误信息:{}\n".format(data_dict["msg"]))
        else:
            Translated_words = data_dict["data"][0]["dst"]
            print("----翻译的内容----\n{}\n\n####翻译的结果####\n{}\n".format(self.query_string,Translated_words))


    #功能实现
    def run(self):
        post_data = self.get_post_data()
        json_str = self.parse_url(self.url, post_data)
        self.get_data(json_str)




if __name__ == '__main__':

    while True:
        Unknown_words= input("请输入需要翻译的内容:")

        #langid.classify()输出探测出的所有语言类型及其所占的比例
        langinfo=langid.classify(Unknown_words)

        #如果被译语言是中文,则目标语言是英文
        #否则不管被译语言是什么,目标语言都是中文

        if(langinfo[0]=="zh"):
            fanyi = FanYi("zh","en",Unknown_words)
        else:
            fanyi = FanYi(langinfo[0],"zh",Unknown_words)

        fanyi.run()

实现语种的识别

0 条回应