Python控制台英汉-汉英电子词典(代码分享)
2016-08-08 11:24
316 查看
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.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) # 第三方模块检查字符串编码,用于调试 # --------有道翻译表单数据-------- 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报头:用户代理 ---------------- 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
相关文章推荐
- 英汉电子词典小项目总结
- 《21世纪英汉汉英双向词典》《朗文当代英语辞典第五版》《牛津高阶英汉双解词典第7版》
- @POLO医生掌上电子助手-英汉医学词典
- jquery带翻页动画的电子杂志代码分享
- 分享 牛津学生 英汉词典 外研社最新 简明英汉词典 等 pdf
- 个人小程序智能对话查询工具完整代码分享--快递、身份证、词典、诗词等
- mac系统自带词典的外挂词典库,朗道(英汉、汉英)和牛津
- C语言 英汉互译电子词典 命令行,MFC,QT 3种版本
- 5行Python代码实现一个简单的在线英汉词典
- C++写功能代码C#写界面的英汉词典
- jquery带翻页动画的电子杂志代码分享
- 分享:Hibernate+Struts分页代码(二)
- [分享]Lc.exe 已退出,代码 -1
- javascript实现WEB打印(用window.open()实现).不用安装任何控件.(含代码)分享
- C#无限栏目分级程序代码分享 好东西第1/3页
- 中科院ICTCLAS词典解析程序 C# 代码
- 这两天写了个分页控件,分享代码
- 分享:Hibernate+Struts分页代码(一)
- [代码人生][分享]SQl语句学习专题
- 分享一段代码show.asp?id=26变成show/?26的形式