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 相关文章推荐
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 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
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
一些Python中的二维数组的操作方法
2015/05/02 Python
用python与文件进行交互的方法
2018/03/01 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
django框架两个使用模板实例
2019/12/11 Python
python/golang 删除链表中的元素
2020/09/14 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
业务总经理岗位职责
2014/02/03 职场文书
社区工作者感言
2014/03/02 职场文书
三年级小学生评语
2014/04/22 职场文书
服务理念标语
2014/06/18 职场文书
努力学习保证书
2015/02/26 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
详细介绍python操作RabbitMq
2022/04/12 Python