這個就是我這到的返回結果:
而事實上在瀏覽器端看到返回的json是這樣的;
百思不得其解,而想到為selenium,但這個翻譯速度實在是太慢了,無法接受。
不多說了,先上code:
#!/user/bin/python
#-*- coding:utf-8 -*-
from urllib import request
from urllib import parse
import json
def youdaotranslate(value, count):
if value == '':
print('輸入內容為空@_@')
return false
else:
# request url
responseurl = ''
# 待提交準備post給url的data:定義為dict
form_data = {}
form_data['i'] = value
form_data['from'] = 'auto'
form_data['to'] = 'auto'
form_data['smartresult'] = 'dict'
form_data['client'] = 'fanyideskweb'
form_data['doctype'] = 'json'
form_data['version'] = '2.1'
form_data['keyfrom'] = 'fanyi.web'
form_data['action'] = 'fy_by_realtime'
form_data['typoresult'] = 'false'
# 使用urlencode方法轉換標準格式
data = parse.urlencode(form_data).encode('utf-8')
response = request.urlopen(responseurl,data)
html = response.read().decode('utf-8')
# 使用json
translate_result = json.loads(html)
# print(translate_result)
# 找到翻譯結果
translate_result_main = translate_result['translateresult'][0][0]['tgt']
# 列印翻譯結果
print(f'. \n\n')
return true
if __name__ == '__main__':
try:
count = 1
while true:
print('-'*26)
word = input('請輸入待翻譯的單詞或句子:\n').strip()
if youdaotranslate(word, count) == true:
count += 1
except keyboardinterrupt:
print('\a手動退出!歡迎再來')
Python 實現有道翻譯命令列版
由於一直用linux系統,對於詞典的支援特別不好,對於我這英語渣渣的人來說,當看英文文件就一直卡殼,之前用慣了有道詞典,感覺很不錯,雖然有網頁版的但是對於全站英文的網頁來說並不支援。索性自己實現乙個,基於python編寫的小工具實現有道詞典,同時還可以將不認識的生詞寫入生詞本中 xml格式 然後定期...
Python3 命令列引數
python 提供了getopt模組來獲取命令列引數。python test.py arg1 arg2 arg3python 中也可以所用sys的sys.argv來獲取命令列引數 注 sys.argv 0 表示指令碼名。例項 test.py 檔案 如下 usr bin python3 import ...
Python3 怎麼使用python命令列引數
python3 test.py arg1 arg2 arg3getopt模組是專門處理命令列引數的模組,用於獲取命令列選項和引數,也就是sys.ar 命令列選項使得程式的引數更加靈活。支援短選項模式 和長選項模式 該模組提供了兩個方法及乙個異常處理來解析命令列引數。getopt.getopt 方法 ...