Python控制台英汉-汉英电子词典
生活随笔
收集整理的這篇文章主要介紹了
Python控制台英汉-汉英电子词典
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
? ? ? ? ?Python控制臺英漢-漢英電子詞典
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?By qianghaohao(CodeNutter)
? ? ? ?用python實現了下控制臺電子詞典,數據來自有道,通過向有道發送http表單數據,然后將服務器返回的json數據解析得到翻譯結果,代碼比較簡單,練練手!
# coding=utf-8 # Filename: trans.py # Author: qianghaohao(CodeNutter) # Email: codenutter@foxmail.com # Program: 控制臺電子詞典 # import os import sys import requests import random import json # import chardet # 第三方模塊檢查字符串編碼,用于調試 from requests.exceptions import ConnectionError, Timeout # os.system('set PYTHONIOENCODING=UTF-8') def GetHelp():U'''GNU trans 1.0By qianghaohao(CodeNutter)Usage: trans [OPTION] [statements]--version 版本信息--help 使用幫助Example: trans campustrans --versiontrans --help'''passif (len(sys.argv) < 2):print '''trans: missing OPTIONUsage: trans [OPTION] [statements]Try 'trans --help' for more details!'''sys.exit(1) if sys.argv[1].startswith('--'):option = sys.argv[1][2:]if option == 'version':print 'trans: Version 1.0'elif option == 'help':print GetHelp.__doc__else:print '''Unknown option!Try 'trans --help' for more options!'''sys.exit(2) else:to_be_trans = ' '.join(sys.argv[1:]).decode('GB2312').encode('utf-8')# print chardet.detect(to_be_trans) # 第三方模塊檢查字符串編碼,用于調試# --------有道翻譯表單數據--------data={}data['type']='AUTO'data['i']=to_be_transdata['doctype']='json'data['xmlVersion']='1.8'data['keyfrom']='fanyi.web'data['ue']='UTF-8'data['action']='FY_BY_CLICKBUTTON'data['typoResult']='true'youdao_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index'# ---------- http報頭:用戶代理 ----------------USER_AGENTS = ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100 101 Firefox/22.0','Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0',('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) ''Chrome/19.0.1084.46 Safari/536.5'),('Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46''Safari/536.5'))# --------- 模擬手工請求:隨機切換用戶代理 ---------headers = {'User-Agent':random.choice(USER_AGENTS)}try:r = requests.post(youdao_url, timeout=10, headers=headers, data=data)except ConnectionError:print 'Network connection failed!'sys.exit(1)except Timeout:print 'request timeout!'sys.exit(1)result = r.json()print result['translateResult'][0][0]['tgt'].encode(sys.stdout.encoding)? ? ? 使用示例(如果感興趣的朋友可以用pyinstaller工具將py源碼轉換成exe格式,直接執行,比較方便,在此用解釋器執行):
??
? 附源碼地址:?http://download.csdn.net/detail/qianghaohao/9597916
轉載于:https://my.oschina.net/bufferoverflow/blog/729427
總結
以上是生活随笔為你收集整理的Python控制台英汉-汉英电子词典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [reprint]如何编写引导程序 He
- 下一篇: 收藏 | 史上最全的“大数据”学习资源