Python控制台英汉-汉英电子词典(代码分享)
生活随笔
收集整理的這篇文章主要介紹了
Python控制台英汉-汉英电子词典(代码分享)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ?Python控制臺(tái)英漢-漢英電子詞典
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?By qianghaohao(CodeNutter)
用python實(shí)現(xiàn)了下控制臺(tái)電子詞典,數(shù)據(jù)來自有道,通過向有道發(fā)送http表單數(shù)據(jù), 然后將服務(wù)器返回的json數(shù)據(jù)解析得到翻譯結(jié)果,代碼比較簡(jiǎn)單,練練手! # coding=utf-8 # Filename: trans.py # Author: qianghaohao(CodeNutter) # Email: codenutter@foxmail.com # Program: 控制臺(tái)電子詞典 # import os import sys import requests import random import json # import chardet # 第三方模塊檢查字符串編碼,用于調(diào)試 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) # 第三方模塊檢查字符串編碼,用于調(diào)試# --------有道翻譯表單數(shù)據(jù)--------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報(bào)頭:用戶代理 ----------------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'))# --------- 模擬手工請(qǐng)求:隨機(jī)切換用戶代理 ---------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源碼轉(zhuǎn)換成exe格式,直接執(zhí)行,比較方便,在此用解釋器執(zhí)行): 附源碼地址: http://download.csdn.net/detail/qianghaohao/9597916總結(jié)
以上是生活随笔為你收集整理的Python控制台英汉-汉英电子词典(代码分享)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SICK LMS511开发及数据结构分析
- 下一篇: 用打怪游戏实例升级版,理解python面