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即可翻译了
本文转自 xxl714 51CTO博客,原文链接:http://blog.51cto.com/dreamgirl1314/1981064,如需转载请自行联系原作者