python3 爬有道翻譯 命令列版)

2021-08-21 10:41:35 字數 1753 閱讀 9941

這個就是我這到的返回結果:

而事實上在瀏覽器端看到返回的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 方法 ...