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 字符串中的字符倒转
Sep 06 Python
Python实现的百度站长自动URL提交小工具
Jun 27 Python
python网络编程之数据传输UDP实例分析
May 20 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Python操作qml对象过程详解
Sep 26 Python
Python 中判断列表是否为空的方法
Nov 24 Python
快速查找Python安装路径方法
Feb 06 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
python 使用tkinter+you-get实现视频下载器
Nov 17 Python
Python 全局空间和局部空间
Apr 06 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
一个PHP数组应该有多大的分析
2009/07/30 PHP
3种php生成唯一id的方法
2015/11/23 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python3 修改默认环境的方法
2019/02/16 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
本科毕业生自荐信
2014/05/26 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
鲁冰花观后感
2015/06/10 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS