python控制台英汉汉英电子词典


Posted in Python onApril 23, 2020

用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格式,直接执行,比较方便,在此用解释器执行): 

python控制台英汉汉英电子词典

附源码地址:电子词典

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
Python中文竖排显示的方法
Jul 28 Python
详解Python中的变量及其命名和打印
Mar 11 Python
python进行两个表格对比的方法
Jun 27 Python
Python并发之多进程的方法实例代码
Aug 15 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
python、Matlab求定积分的实现
Nov 20 Python
python求前n个阶乘的和实例
Apr 02 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
Python如何利用pandas读取csv数据并绘图
Jul 07 Python
测试、预发布后用python检测网页是否有日常链接
Jun 03 #Python
Python中的CURL PycURL使用例子
Jun 01 #Python
Python实现多线程下载文件的代码实例
Jun 01 #Python
python使用在线API查询IP对应的地理位置信息实例
Jun 01 #Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 #Python
2款Python内存检测工具介绍和使用方法
Jun 01 #Python
使用Python的Supervisor进行进程监控以及自动启动
May 29 #Python
You might like
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
微信小程序实现人脸检测功能
2018/05/25 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
python设置值及NaN值处理方法
2018/07/03 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
初三家长会邀请函
2014/01/18 职场文书
给物业的表扬信
2014/01/21 职场文书
商铺租赁意向书
2014/04/01 职场文书
企业法人代表任命书
2014/06/06 职场文书
文明单位申报材料
2014/12/23 职场文书
工作建议书范文
2019/07/08 职场文书