pyhton實現翻譯

root@ubuntu:/data/server/spider# cat fanyi2.py 

#coding:utf-8

import json

import requests

import sys


class FanYi:

    def __init__(self,query_str):

        # 準備語言檢測的url和數據

        self.headers = self.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}

        self.langdetect_url = "http://fanyi.baidu.com/langdetect"


        self.query_str = query_str

        self.langdetect_data = {'query':query_str}


    def parse_url(self,url,post_data):

        #發送請求獲取響應

        json_res = requests.post(url,data=post_data,headers = self.headers)

        return json_res.content.decode()


    def get_postdata(self,lang):

        # if後面的條件如果成立,那麼就把if前的值賦給to,

        # 否則if否面的條件不成立,就把else後的值賦給to

        fanyi_url = "http://fanyi.baidu.com/v2transapi"

        to = "en"  if lang == 'zh' else 'zh'


        fanyi_data = {'from':lang,

                        'to': to,

                        'query':query_str,

                        'transtype': 'translang',

                        'simple_means_flag':'3',

                            }

        return fanyi_url,fanyi_data


    def get_ret(self,json_res):

        # 將json string 轉換爲python字典類型

        dict_res = json.loads(json_res)

        # print('dict_res', dict_res)

        # ret = dict_res['trans_result']['data'][1]['result'][0][1]

        ret = dict_res['trans_result']['data'][0]['dst']

        print('%s翻譯的結果是:%s'%(self.query_str,ret))


    def run(self):

        # 1.檢測語言的url,檢測語言的post——data

        # 2.發送請求獲取響應

        lan_json_res = self.parse_url(self.langdetect_url,self.langdetect_data)

        # print('lan_json_res', lan_json_res)

        # 3。提取語言的類型

        lang = json.loads(lan_json_res)['lan']

        # ret = self.get_ret(json_res)

        # 4.獲取翻譯的url,翻譯的post_data

        fanyi_url,fanyi_postdata = self.get_postdata(lang)

        # 5.發送請求獲取響應

        fanyi_res = self.parse_url(fanyi_url,fanyi_postdata)

        # 6.獲取翻譯的結果

        ret = self.get_ret(fanyi_res)



if __name__ =="__main__":

    while True:

        query_str = input('請輸入要翻譯的內容:')

        # query_str = sys.argv[1]

        #實例化翻譯對象

        baidu_fanyi = FanYi(query_str)

        #調用實例方法

        baidu_fanyi.run()


vim /root/.bashrc

alias fanyi='python3 /data/server/Spider/fanyi2.py'

source /root/.bashrc


直接在linux 命令下輸入fanyi即可翻譯了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章