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)文章
Python實(shí)現(xiàn)兩款計(jì)算器功能示例
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)兩款計(jì)算器功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12python實(shí)現(xiàn)飛機(jī)大戰(zhàn)微信小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛機(jī)大戰(zhàn)微信小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09Python 基于wxpy庫(kù)實(shí)現(xiàn)微信添加好友功能(簡(jiǎn)潔)
這篇文章主要介紹了Python 基于wxpy庫(kù)實(shí)現(xiàn)微信添加好友功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Python利用heapq實(shí)現(xiàn)一個(gè)優(yōu)先級(jí)隊(duì)列的方法
今天小編就為大家分享一篇Python利用heapq實(shí)現(xiàn)一個(gè)優(yōu)先級(jí)隊(duì)列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Python編程中用close()方法關(guān)閉文件的教程
這篇文章主要介紹了Python編程中用close()方法關(guān)閉文件的教程,是Python編程入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05在python中實(shí)現(xiàn)同行輸入/接收多個(gè)數(shù)據(jù)的示例
今天小編就為大家分享一篇在python中實(shí)現(xiàn)同行輸入/接收多個(gè)數(shù)據(jù)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python MOCK SERVER moco模擬接口測(cè)試過(guò)程解析
這篇文章主要介紹了Python MOCK SERVER moco模擬過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04