前言
由于一直用Linux系統(tǒng),對于詞典的支持特別不好,對于我這英語渣渣的人來說,當看英文文檔就一直卡殼,之前用慣了有道詞典,感覺很不錯,雖然有網(wǎng)頁版的但是對于全站英文的網(wǎng)頁來說并不支持。索性自己實現(xiàn)一個,基于Python編寫的小工具實現(xiàn)有道詞典,思路也很簡單,直接調(diào)用有道的api,解析下返回的json就ok了。
只用到了python原生的庫,支持python2和python3.
示例代碼
#!/usr/bin/env python# -*- coding:utf-8 -*-# API key:273646050# keyfrom:11pegasus11import jsonimport systry: # py3 from urllib.parse import urlparse, quote, urlencode, unquote from urllib.request import urlopenexcept: # py2 from urllib import urlencode, quote, unquote from urllib2 import urlopendef fetch(query_str=''): query_str = query_str.strip("'").strip('"').strip() if not query_str: query_str = 'python' print(query_str) query = { 'q': query_str } url = 'http://fanyi.youdao.com/openapi.do?keyfrom=11pegasus11&key=273646050&type=data&doctype=json&version=1.1&' + urlencode(query) response = urlopen(url, timeout=3) html = response.read().decode('utf-8') return htmldef parse(html): d = json.loads(html) try: if d.get('errorCode') == 0: explains = d.get('basic').get('explains') for i in explains: print(i) else: print('無法翻譯') except: print('翻譯出錯,請輸入合法單詞')def main(): try: s = sys.argv[1] except IndexError: s = 'python' parse(fetch(s))if __name__ == '__main__': main()
使用
將上面代碼粘貼后命名為youdao.py
修改名稱mv youdao.py youdao
, 然后加上可執(zhí)行權(quán)限chmod a+x youdao
拷貝到/usr/local/bin
。 cp youdao /usr/local/bin
使用的時候把要翻譯的單詞作為第一個命令行參數(shù),要是句子用引號括起來。
總結(jié)
以上就是這篇問文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選