主要內容:利用python的requests.post作為工具,爬取有道詞典的翻譯內容
以下是主要**:
# coding = "utf-8
import requests
import json
# query_str = sys.ar**[1]
class
youdaotranslate
:def
__init__
(self)
: self.keep_active =
true
self.acture_mod =
false
self.language_code_dict =
self.language_code_list =
["1"
,"2"
,"3"
,"4"
,"5"
,"6"
,"7"
,"8"
,"9"
,"10"
,"11"
,"12"
]print()
# 獲取幫助資訊
defget_help_msg
(self)
:print
("1.輸入「切換翻譯模式」 --> 重新選擇翻譯模式"
)print
("2.輸入「翻轉翻譯」 --> 切換翻譯的源和目標語言"
)print
("3.輸入「結束」或者「exit」 --> 「退出翻譯」"
)#選擇翻譯模式
defstart
(self)
: self.language_code =
input
("請選擇翻譯模式:1-> 中英; 2-> 中日; 3-> 中韓; 4-> 中法; 5-> 中俄; 6-> 中西;"
"7-> 英中; 8-> 日中; 9-> 韓中; 10-> 俄中; 11-> 西中 :"
)# 輸入正確的翻譯方式
if self.language_code in self.language_code_list:
print
("language_code = "
, self.language_code_dict[self.language_code]
) self.
type
= self.language_code_dict[self.language_code]
self.acture_mod =
true
# 獲取實際翻譯型別索引
self.real_code_index =
list
(self.language_code_dict.keys())
.index(self.language_code)
#輸入的不是正確的翻譯模式
else
: self.
type
= self.language_code
# 檢視幫助
if self.
type
=="help"
or self.
type
=="幫助"
: self.get_help_msg(
)elif self.
type
=="結束"
or self.
type
=="exit"
:print
("退出翻譯!"
, self.
type
) exit(
)else
:print
("輸入有誤,請重新輸入!"
)#進入死迴圈,除非輸入正確的翻譯模式或者退出翻譯
while
(self.acture_mod ==
false):
code =
input
("請選擇翻譯模式:1-> 中英; 2-> 中日; 3-> 中韓; 4-> 中法; 5-> 中俄; 6-> 中西;"
"7-> 英中; 8-> 日中; 9-> 韓中; 10-> 俄中; 11-> 西中 :"
)#得到正確的翻譯模式
if code in self.language_code_list:
self.
type
= self.language_code_dict[code]
self.acture_mod =
true
#退出翻譯
elif code ==
"結束"
or code ==
"exit"
: self.acture_mod =
true
print
("退出翻譯!"
, code)
exit(
)#繼續迴圈
else
:print
("輸入有誤,清重新輸入"
)# 翻譯過程處理
defprocess
(self)
: headers =
post_data =
post_url =
""r = requests.post(post_url, data=post_data, headers=headers)
dict_ret = json.loads(r.content.decode())
ret = dict_ret[
"translateresult"][
0][0
]["tgt"
]print
("翻譯結果為:"
, ret)
# 翻轉翻譯型別
defreverse_trans
(self)
:if self.real_code_index <6:
self.real_code_index = self.real_code_index +
6else
: self.real_code_index = self.real_code_index -
6 self.
type
= self.language_code_dict[self.language_code_list[self.real_code_index]
]print
("翻轉後的翻譯模式為:"
, self.
type
)def
run(self)
:while self.keep_active:
self.trans_content =
input
("請輸入要翻譯的內容:"
)# 判斷輸入的內容
if self.trans_content ==
"幫助"
or self.trans_content ==
"help"
:# 獲取幫助資訊
self.get_help_msg(
)elif self.trans_content ==
"結束"
or self.trans_content ==
"exit"
:# 退出翻譯
self.keep_active =
false
print
("退出翻譯!"
, self.trans_content)
exit
elif self.trans_content ==
"切換翻譯模式"
:# 切換翻譯模式
self.start(
)elif self.trans_content ==
"翻轉翻譯"
:# 翻轉翻譯模式
self.reverse_trans(
)else
:# 開始翻譯
self.process(
)if __name__ ==
'__main__'
: translate = youdaotranslate(
) translate.start(
) translate.run(
)
語言翻譯程式
計算機只能識別 執行本身的機器語言 0 1構成的指令系統 另一方面,人們又希望使用高階的程式語言描述要計算機解決的問題,因此,如何使用高階程式語言對映成等價的及其語言就成為解決問題的關鍵,語言翻譯程式就起到這樣的作用。語言翻譯程式分為兩種 解釋型翻譯程式和編譯型翻譯程式 解釋型 讀入一句源程式,翻譯...
python3爬蟲攻略(4) 簡單的翻譯程式
jsonpath的簡單使用 首先要將json物件轉化為python物件 使用json.loads 然後要取得拿破崙的翻譯結果只需要找到根節點下面的data節點下面的dst節點就可以了 data.dst 這是這樣就可以啦!import json import jsonpath 把json物件轉換成py...
翻譯程式 編譯程式和解釋程式的區別和聯絡
最近在複習編譯原理的時候,就在第一章,發現了乙個很有趣的知識點。翻譯程式是指這樣乙個程式,它把一種語言所寫的源程式翻譯成與之等價的另一種語言的目標程式。編譯程式是一種翻譯程式,它把高階語言所寫的源程式翻譯成等價的機器語言或組合語言的目標程式。解釋程式也是一種翻譯程式,它將源程式作為輸入並執行它,邊解...