python控制臺(tái)英漢漢英電子詞典
用python實(shí)現(xiàn)了下控制臺(tái)電子詞典,數(shù)據(jù)來(lái)自有道,通過(guò)向有道發(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.0
By qianghaohao(CodeNutter)
Usage: trans [OPTION] [statements]
--version 版本信息
--help 使用幫助
Example: trans campus
trans --version
trans --help
'''
pass
if (len(sys.argv) < 2):
print '''
trans: missing OPTION
Usage: 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_trans
data['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í)行):

附源碼地址:電子詞典
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中重定向輸出流實(shí)現(xiàn)用文件記錄程序日志
這篇文章主要介紹了Java中重定向輸出流實(shí)現(xiàn)用文件記錄程序日志,本文直接給出代碼實(shí)例,并對(duì)代碼做了詳細(xì)注解,需要的朋友可以參考下2015-06-06
Python實(shí)現(xiàn)冒泡排序算法的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
利用Python實(shí)現(xiàn)自動(dòng)化監(jiān)控文件夾完成服務(wù)部署
本篇文章將為大家詳細(xì)介紹如何利用Python語(yǔ)言實(shí)現(xiàn)監(jiān)控文件夾,以此輔助完成服務(wù)的部署動(dòng)作,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-07-07
對(duì)python sklearn one-hot編碼詳解
今天小編就為大家分享一篇對(duì)python sklearn one-hot編碼詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
對(duì)python數(shù)據(jù)清洗容易遇到的函數(shù)-re.sub bytes string詳解
今天小編就為大家分享一篇對(duì)python數(shù)據(jù)清洗容易遇到的函數(shù)-re.sub bytes string詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
淺談python下含中文字符串正則表達(dá)式的編碼問(wèn)題
今天小編就為大家分享一篇淺談python下含中文字符串正則表達(dá)式的編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
在Python中處理字符串之isdecimal()方法的使用
這篇文章主要介紹了在Python中處理字符串之isdecimal()方法的使用,是Python入門(mén)學(xué)習(xí)的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
帶你用Python實(shí)現(xiàn)Saga 分布式事務(wù)的方法
在這篇文章里,我們介紹了 SAGA 的理論知識(shí),也通過(guò)一個(gè)例子,完整給出了編寫(xiě)一個(gè) SAGA 事務(wù)的過(guò)程,涵蓋了正常成功完成,異常情況,以及成功回滾的情況,需要的朋友參考下吧2021-09-09

