码迷,mamicode.com
首页 > 其他好文 > 详细

pyhton实现翻译

时间:2017-11-12 20:55:41      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:python 实现翻译程序

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即可翻译了

本文出自 “梦女孩” 博客,请务必保留此出处http://dreamgirl1314.blog.51cto.com/1159474/1981064

pyhton实现翻译

标签:python 实现翻译程序

原文地址:http://dreamgirl1314.blog.51cto.com/1159474/1981064

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!