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 ElementTree 基本读操作示例
Apr 09 Python
python计算最大优先级队列实例
Dec 18 Python
详解Python发送邮件实例
Jan 10 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 Python
python查看模块,对象的函数方法
Oct 16 Python
python实现QQ批量登录功能
Jun 19 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
基于PyQT实现区分左键双击和单击
May 19 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
通过代码简单了解django model序列化作用
Nov 12 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
AngularJS的ng-click传参的方法
2017/06/19 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python3 能振兴 Python的原因分析
2014/11/28 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
Python调用Windows命令打印文件
2020/02/07 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
销售人员自我评价怎么写
2013/09/19 职场文书
医学生自荐信范文
2013/12/03 职场文书
建筑文秘专业个人求职信范文
2013/12/28 职场文书
《画》教学反思
2014/04/14 职场文书
环保倡议书范文
2014/05/12 职场文书
城管年度个人总结
2015/02/28 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android