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